Percona XtraDB Cluster简易入门 - 安装篇
说明
Percona XtraDB Cluster(简称PXC),是由percona公司推出的mysql集群解决方案。特点是每个节点都能进行读写,且都保存全量的数据。也就是说在任何一个节点进行写入操作,都会同步给其它所有节点写入到自己的磁盘。这点跟Oracle Rac有本质的区别,Rac是多个节点连同一个共享存储,假如Oracle的共享存储挂了,整个集群就挂了。而Mysql pxc中任何一台机器挂了,集群照常运转,因为节点间并不共享磁盘。
写在前面的注意事项(节选自官方手册)
1. 由于pxc只作用于innodb引擎,而mysql自带的系统库(mysql)里面有些表是MyISAM的存储引擎,因此不能直接对系统库(mysql)的表进行dml操作,比如INSERT INTO mysql.user...。而是使用CREATE USER...,这个是没有问题的,而且也是正确的方式。
2. 不支持LOCK TABLES和UNLOCK TABLES语句
mysql> lock tables world write;
ERROR 1105 (HY000): Percona-XtraDB-Cluster prohibits use of LOCK TABLE/FLUSH TABLE <table> WITH READ LOCK/FOR EXPORT with pxc_strict_mode = ENFORCING
3. log_output参数不能是TABLE
4. 不支持分布式事务
5. 新建表必须要有主键,否则对表进行dml操作会报以下错误
ERROR 1105 (HY000): Percona-XtraDB-Cluster prohibits use of DML command on a table (hello.world) without an explicit primary key with pxc_strict_mode = ENFORCING or MASTER
6. 推荐的节点数最小是3个
安装
准备三个节点,操作系统使用centos6.10,pxc采用rpm安装的方式,简单
节点1 ip: 10.40.16.120 hostname:mysqla
节点2 ip: 10.40.16.121 hostname:mysqlb
节点3 ip: 10.40.16.122 hostname:mysqlc
所有节点关闭防火墙
service iptables stop
chkconfig iptables off
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
所有节点安装以下rpm包
#安装percona cluster依赖包
wget ftp://rpmfind.net/linux/atrpms/el6-x86_64/atrpms/stable/libev-4.04-2.el6.x86_64.rpm
wget http://www.rpmfind.net/linux/epel/6/x86_64/Packages/s/socat-1.7.2.3-1.el6.x86_64.rpm yum install -y libev-4.04-2.el6.x86_64.rpm
yum install -y socat-1.7.2.3-1.el6.x86_64.rpm #配置yum仓库
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm #安装percona cluster
yum install -y Percona-XtraDB-Cluster-57
到这里所有的安装工作就已经完成了,接下来就是修改参数文件,把这三个节点连起来组成集群
修改参数文件
需要修改的参数已经列出来了,其余不用动,注意下面这些参数有的前面有#号,需要去掉
修改节点1的参数文件
vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
user=mysql
wsrep_cluster_address=gcomm://10.40.16.120,10.40.16.121,10.40.16.122 #集群的所有节点ip
wsrep_node_address=10.40.16.120 #本机的ip
wsrep_node_name=pxc-cluster-node-1 #本机在集群中的名字
wsrep_sst_auth="sstuser:s3cretPass" #集群间同步的用户,后面需要在节点1创建该用户
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
server-id=1 #集群内所有节点的id不能相同
启动节点1的mysql
/etc/init.d/mysql bootstrap-pxc #集群的第一个节点启动必须使用该方式。如果手工将整个集群关掉了,那么重新启动集群时,应该启动最后一个被关闭的节点,且以该方式。第一个启动的节点称为donater,后面启动的节点为joiner,两者启动方式不一样,需要留意
[root@mysqla ~]# /etc/init.d/mysql bootstrap-pxc
Bootstrapping PXC (Percona XtraDB Cluster)MySQL (Percona XtraDB Cluster) is not running, but lock file (/var/lock/subsys/mysql) exists [FAILED]
Starting MySQL (Percona XtraDB Cluster).... [ OK ]
前面那个failed忽略,属于正常情况
找出root的临时密码
[root@mysqla ~]# grep "temporary password" /var/log/mysqld.log |awk -F " " '{print $11}'
&enffgG_E8Ty
修改root密码并创建同步账号(同步账号需要跟/etc/percona-xtradb-cluster.conf.d/wsrep.cnf的键值wsrep_sst_auth对应)
[root@mysqla ~]# mysql -uroot -p'&enffgG_E8Ty'
mysql> alter user root@'localhost' identified by 'root';
mysql> create user 'sstuser'@'localhost' identified by 's3cretPass';
mysql> grant process, reload, lock tables, replication client on *.* to 'sstuser'@'localhost';
mysql> flush privileges;
修改节点2的参数文件
vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
user=mysql
wsrep_cluster_address=gcomm://10.40.16.120,10.40.16.121,10.40.16.122
wsrep_node_address=10.40.16.121
wsrep_node_name=pxc-cluster-node-2
wsrep_sst_auth="sstuser:s3cretPass"
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
server-id=2
启动节点2的mysql
service mysql start
[root@mysqlb ~]# service mysql start
MySQL (Percona XtraDB Cluster) is not running, but lock fil[FAILED]lock/subsys/mysql) exists
Starting MySQL (Percona XtraDB Cluster)......State transfer in progress, setting sleep higher
. [ OK ]
修改节点3的参数文件
vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
user=mysql
wsrep_cluster_address=gcomm://10.40.16.120,10.40.16.121,10.40.16.122
wsrep_node_address=10.40.16.122
wsrep_node_name=pxc-cluster-node-3
wsrep_sst_auth="sstuser:s3cretPass"
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
server-id=3
启动节点3的mysql
service mysql start
[root@mysqlc ~]# service mysql start
MySQL (Percona XtraDB Cluster) is not running, but lock fil[FAILED]lock/subsys/mysql) exists
Starting MySQL (Percona XtraDB Cluster)......State transfer in progress, setting sleep higher
. [ OK ]
测试
在任意节点创建一张表,注意这里创建的表必须有主键,查看其它节点是否有数据,有就表示同步完成,没有的话去看日志/var/log/mysqld.log查找原因
如果文章帮到了你,还希望你点个赞,你的点赞是我写作的最大动力,哈哈。
Percona XtraDB Cluster简易入门 - 安装篇的更多相关文章
- Percona XtraDB Cluster 5.7安装配置
优点:1.准同步复制2.多个可同时读写节点,可实现写扩展,较分片方案更进一步3.自动节点管理4.数据严格一致5.服务高可用缺点:1.只支持innodb引擎2.所有表都要有主键3.所有的写操作都将发生在 ...
- Percona XtraDB Cluster(PXC) -集群环境安装
Percona XtraDB Cluster(PXC) ---服务安装篇 1.测试环境搭建: Ip 角色 OS PXC-version 172.16.40.201 Node1 Redhat/C ...
- Percona XtraDB Cluster(PXC) Mysql 集群
Percona XtraDB Cluster(PXC) ---原理介绍篇 目录 一.简介 1 二.优缺点 2 三.区别/局限性 3 四. PXC复制原理 4 五. 服务解释 5 ...
- PXC(Percona XtraDB Cluster)集群的安装与配置
Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera ...
- docker1.12 安装pxc(Percona XtraDB Cluster )测试
docker1.12 安装pxc(Percona XtraDB Cluster )测试
- 搭建高可用mysql系列(2)-- Percona XtraDB Cluster 安装
本文主要介绍在 centos 下 Percona XtraDB Cluster(下文简称PXC) 的安装, 个人的系统版本信息如下: [root@c2-d09 worker]# more /etc/r ...
- 如何搭建Percona XtraDB Cluster集群
一.环境准备 主机IP 主机名 操作系统版本 PXC 192.168.244.146 node1 ...
- 使用percona xtradb cluster的IST方式添加新节点
使用percona xtradb cluster的IST(Incremental State Transfer)特性添加新节点,防止新节点加入时使用SST(State SnapShop Transfe ...
- mysql高可用之PXC(Percona XtraDB Cluster)
简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1).同步复制,事务要么在所有节点提交或不提交 ...
随机推荐
- 各种数和各种反演(所谓FFT的前置知识?)
每次问NC做多项式的题需要什么知识点. 各种数. 各种反演. 多项式全家桶. 然后我就一个一个地学知识点.然而还差好多,学到后面的前面的已经忘了(可能是我太菜吧不是谁都是NC啊) 然后发现每个知识点基 ...
- Rsync常见问题汇总
rsync服务端开启的iptables防火墙 客户端的错误现象 No route to host 错误演示过程 [root@nfs01 tmp]# rsync -avz /etc/hosts rsy ...
- 04-Uwsgi配置启动Nginx虚拟主机配置
一.虚拟环境的安装 1.安装虚拟环境 sudo pip3 install virtualenv 2.安装virtualenvwrapper sudo pip3 install virtualenvwr ...
- Jmeter正则提取请求响应数据
前言 在测试时,我们经常需处理请求返回的响应数据,比如很多时候 cookie 或 token 或 Authorization授权码 会返回在 Response headers(响应头)中,这时我们便需 ...
- Spring 框架基础(01):核心组件总结,基础环境搭建
本文源码:GitHub·点这里 || GitEE·点这里 一.Spring框架 1.框架简介 Spring是一个开源框架,框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 ...
- SSM框架之spring(1)
spring(1) 1.spring概述 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP( ...
- linux脚本判断当前的linux版本是6还是7
#!/bin/sh version="release 7." release=$(cat /etc/redhat-release) echo $release result=$(e ...
- WebViewJavascriptBridge的详细使用
参考链接: https://www.jianshu.com/p/d12ec047ce52 https://www.jianshu.com/p/ba6358b1eec3 有demo:https://ww ...
- githup常用备份
https://github.com/ https://github.com/doumeki/ThrExcel https://github.com/xinxi1990/MyMonkey https: ...
- qt qrc 资源文件
qt qrc 资源文件 qt qrc 资源文件 qt qrc 资源文件