首页 > 代码库 > MySQL--Percona-XtraDB-Cluster使用xtrabackup来添加节点

MySQL--Percona-XtraDB-Cluster使用xtrabackup来添加节点

虽然PXC支持在线增加群集节点,但是目前尚未解决wsrep_sst_method=xtrabackup 或wsrep_sst_method=mysqldump时报错的问题,因此尝试手动完成xtrabackup备份和恢复并添加到群集节点。

场景:

有三台干净的CentOS 6的服务器,IP配置为:192.168.166.169,192.168.166.170,192.168.166.171,准备搭建三节点的Percona XtraDB Cluster,目前192.168.166.169,192.168.166.170已加入到群集,准备将192.168.166.171加入到群集中。

192.168.166.169的wsrep_node_name为pxc1,

192.168.166.170的wsrep_node_name为pxc2,

192.168.166.171的wsrep_node_name为pxc3,

============================================

首先在服务器192.168.166.170上备份,使用galera-info来获取备份时的群集序列号:

/usr/bin/innobackupex --defaults-file="/etc/my.cnf" --host="localhost" --port=3306 --user="sstuser" --password="s3cret" --socket="/var/lib/mysql/mysql.sock" --galera-info "/pxc_backup/"

将备份复制到192.168.166.171上,切换到备份目录下,执行恢复:

innobackupex --apply-log ./

恢复完成后,可以看到一个xtrabackup_galera_info,该文件中存放备份时的群集序列号

技术分享

本次demo中xtrabackup_galera_info数据为:

5f3c567e-033f-11e6-a67c-67e2991c9c84:13

 

从192.168.166.169或192.168.166.170复制文件grastate.dat到192.168.166.171上

默认rpm安装下,grastate.dat路径为:/var/lib/mysql

然后在192.168.166.171上修改grastate.dat文件中的值为xtrabackup_galera_info数据:

# GALERA saved stateversion: 2.1uuid:    5f3c567e-033f-11e6-a67c-67e2991c9c84seqno:   -1safe_to_bootstrap: 0

修改文件mysql数据目录的权限

chown -R mysql:mysql /var/lib/mysql

编辑mysql配置文件/etc/my.cnf

 

然后分别到192.168.166.169和192.168.166.170上执行下面命令来查看各节点上保存的最小序列号:

show global status like wsrep_local_cached_downto;

假设192.168.166.170上的最小序列号低于xtrabackup_galera_info数据,则证明可以利用192.168.166.170来做增量同步,而192.168.166.170的wsrep_node_name为pxc2,因此启动pxc3节点的脚本为:

service mysql start --wsrep_sst_donor=pxc2

启动成功:

ERROR! MySQL (Percona XtraDB Cluster) is not running, but lock file (/var/lock/subsys/mysql) existsStarting MySQL (Percona XtraDB Cluster).... SUCCESS!

登录MySQL查看状态:

show status like wsrep%;

插入测试数据验证群集同步是否正常。

============================================

赶班车,走人,周末快乐

技术分享

 

MySQL--Percona-XtraDB-Cluster使用xtrabackup来添加节点