安装galera,mysq-wsrep,xtrabackup
1.安装galera,mysq-wsrep
yum install libboost_program_options.so.1.53.0 boost-program-options lsof perl-Data-Dumper rsync -y
yum remove mysql-libs -y
wget http://releases.galeracluster.com/centos/7/x86_64/galera-3-25.3.19-2.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-client-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-devel-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-server-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-shared-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-test-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh galera-3-25.3.19-2.el7.x86_64.rpm
rpm -ivh mysql-wsrep-server-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-client-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-devel-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-shared-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-test-5.6-5.6.34-25.18.el7.x86_64.rpm
2.安装xtrabackup
rpm -Uvh https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
yum install percona-xtrabackup -y
xtrabackup –version
3.设置开机启动mysql
chkconfig mysql on
service mysql start
4.设置mysql的root密码,并做安全加固
/usr/bin/mysql_secure_installation
5.创建用于同步数据库的SST帐号
[root@galera-cluster-mysql-27 ~]# mysql -uroot -p
mysql> grant all privileges on *.* to sst@’%’ identified by ‘123456’;
mysql> flush privileges;
mysql> quit;
6.创建wsrep.cnf文件
cp /usr/share/doc/mysql-wsrep-server-5.6-5.6.34/wsrep.cnf /etc/my.cnf.d/
vim /etc/my.cnf.d/wsrep.cnf
只需要修改以下四行:
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name=”haotion_wsrep_cluster”
wsrep_cluster_address=”gcomm://”
wsrep_sst_method=xtrabackup
wsrep_sst_auth=sst:123456
注意:”gcomm://”是特殊的地址,仅仅是Galera cluster初始化启动时使用。如果集群启动以后,我们关闭了第一个节点,那么再次启动的时候必须先修改”gcomm://”为其他节点的集群地址,例如:wsrep_cluster_address=”gcomm://192.168.7.29″
7.在/usr/my.cnf中加入如下一行
vim /usr/my.cnf
!includedir /etc/my.cnf.d/
8.重启mysql服务
service mysql restart
配置Galera cluster for MySQL
在Galera Cluster中,新接入的节点叫Joiner,给joiner提供复制的节点叫Donor。
对于生产环境使用,建议设立一个专用的”参考节点”,这个”参考节点”不执行任何客户端的SQL请求。
上图中红色的NODE A即为”参考节点”,这样做的好处有如下几条:
1.数据一致性:
因为”参考节点”本身不执行任何客户端SQL,所以在这个节点上发生transaction冲突的可能性最小。
因此如果发现集群有数据不一致的时候,”参考节点”上的数据应该是集群中最准确的。
2.数据安全性:
因为”参考节点”本身不执行任何客户端SQL,所以在这个节点上发生灾难事件的可能性最小。
因此当整个集群宕掉的时候,”参考节点”应该是恢复集群的最佳节点。
3.高可用:
“参考节点”可以作为专门state snapshot donor。
因为”参考节点”不服务于客户端,因此当使用此节点进行SST的时候,不会影响用户体验,并且前端的负载均衡设备也不需要重新配置。
构造如上图的结构,新节点的操作步骤如下:
按照上述1-8的步骤安装mysql和Galera library
除了第6步wsrep_cluster_address的配置稍有不同:wsrep_cluster_address=”gcomm://Node-[A-N]-IP”
配置Node A重新加入集群,修改/etc/my.cnf.d/wsrep.cnf中的wsrep_cluster_address地址指向Node N。wsrep_cluster_address=”gcomm://Node-N-IP:4567″
重启mysql服务
service mysql restart
查看集群心跳语句
mysql> show status like ‘wsrep%’;
注意(遇到的坑):集群启动失败解决方案
cd /var/lib/mysql
rm -f g*
echo ”>innobackup.backup.log