mgr添加新节点或者恢复节点

如果mgr集群在运行了相当长时间后,其中的的某个节点,机器爆炸了,硬盘数据没了,或者需要新增节点时。直接在新的机器 start group_replication。或者是从节点退出集群(stop group_replication),隔了很长一段时间想要加进来。会发现加入不进去

查看mysql的日志, 会类似

1
…..   but the master has purged binary logs containing GTIDs that the slave requires. (server_errno=1236)

查看日志可知,是因为节点的binary log被删除掉,从节点无法加入。这个时候,只能从主节点全量备份,还原到新节点,然后再启动同步。

Mysql 8.0.1或者以上,可以正常备份

1
2
3
4
5
6
7
 mysqldump -p  --single-transaction --all-databases --triggers \
--routines --events >dump.sql

#如果是8.0.1以下,会提示 Couldn't execute 'SAVEPOINT sp',换成锁定表

mysqldump -p --lock-all-tables --all-databases --triggers \
--routines --events >dump.sql

在新的节点下,正常配置mgr的相关配置文件,以及通道,下面2个是必须的

1
2
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';

如果是新增了节点,记得在原有的节点的my.cnf中
loose-group_replication_group_seeds 选项里,加入新节点的地址

将数据导入到新节点

1
/opt/mysql-8.0.12-el7-x86_64/bin/mysql -h 127.0.0.1 <./dump.sql

然后在运行

1
start group_replication;

最后检查一下

1
SELECT * FROM performance_schema.replication_group_members;