MySQL Group Replication(简称MGR)是MySQL 5.7引入的的一个新特性,是基于原生复制及paxos协议的组复制技术的高可用解决方案。 本文记录如何向MySQL 5.7 MGR集群(单主模式)中添加新节点的具体步骤,适用的场景包括: 添加新节点到集群中、迁移集群中的某个节点到另外一台服务器上。

在要添加的新节点服务器上部署MySQL,过程略…

使用innobackupex在MGR集群主库上手动执行完整备份操作:

1innobackupex \
2  --datadir=/home/mysql/data \
3  --user=root \
4  --password='therootpwd' \
5  --no-timestamp \
6  /home/mysql/backups/manual-backup

在主库上手动备份结束后,在使用innobackupex往备份目录执行一次apply log:

1innobackupex --apply-log /home/mysql/backups/manual-backup

删除新节点服务器上MySQL的数据目录内所有内容,将MGR主库上的手动备份的目录内的全部内容拷贝到新节点的数据目录内,并修改新节点目录和文件权限为mysql用户。

启动新节点上的MySQL服务,TRUNCATE以下两个系统表的数据:

1TRUNCATE TABLE mysql.slave_master_info;
2TRUNCATE TABLE mysql.slave_relay_log_info;

删除新节点数据目录下的以下文件:

1rm -f relay_bin-group_replication_applier.*
2rm -f relay_bin-group_replication_recovery.*

查看新节点数据目录下innobackupex记录的备份时的GTID:

1cat xtrabackup_binlog_info
2binlog.000236   93656632        33847171-5f22-11e7-b03b-080027d9d784:1-67832192,
3401eada5-1003-11e9-8a8f-000ec6abd763:1-247905964,
4408d178d-819c-11e8-80fb-1866da8c6175:1-14408515,
5462ea38a-3f20-11e9-9e90-1866da8c6175:1-40642,
654e06abf-5235-11e9-849a-1866da8c2439:1-2

重启新节点上的数据库服务:

1systemctl restart mysqld

再次连接新节点数据库,重新配置GTID_PURGED与上面查看的备份时的GTID一致,之后在新节点上启动组复制加入MGR集群:

1RESET MASTER;
2SET @@GLOBAL.GTID_PURGED='33847171-5f22-11e7-b03b-080027d9d784:1-67832192,
3401eada5-1003-11e9-8a8f-000ec6abd763:1-247905964,
4408d178d-819c-11e8-80fb-1866da8c6175:1-14408515,
5462ea38a-3f20-11e9-9e90-1866da8c6175:1-40642,
654e06abf-5235-11e9-849a-1866da8c2439:1-2';
7
8CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='replpassword' FOR CHANNEL 'group_replication_recovery';
9START GROUP_REPLICATION;

查看MGR成员,等待新加入的节点从RECOVERING切换成ONLINE状态,在RECOVRING过程中可以查看mysqld.err错误日志中是否有错误发生。

1 SELECT * FROM performance_schema.replication_group_members;
2+---------------------------+--------------------------------------+-------------+-------------+--------------+
3| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
4+---------------------------+--------------------------------------+-------------+-------------+--------------+
5| group_replication_applier | 462ea38a-3f20-11e9-9e90-1866da8c6175 | db01        |        3306 | ONLINE       |
6| group_replication_applier | 54e06abf-5235-11e9-849a-1866da8c2439 | db02        |        3306 | ONLINE       |
7| group_replication_applier | 62381d5e-5235-11e9-bc96-1866da8c2fcd | db03        |        3306 | ONLINE       |
8| group_replication_applier | b2506996-fb2c-11eb-a2eb-fa163e2f9e58 | db04        |        3306 | RECOVRING       |
9+---------------------------+--------------------------------------+-------------+-------------+--------------+

参考