mgr.md 2.4 KB

重新引导 MGR 集群, 这是集群重启后的典型状态

根据 GTID 判断数据新旧

docker exec -i mysql80-1 mysql -uroot -pRoot_123456 -e" SELECT @@global.gtid_executed; "

假设 mysql80-1 节点的数据最新, 将其作为引导节点

docker exec -i mysql80-1 mysql -uroot -pRoot_123456 -e " SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION USER='repl', PASSWORD='Repl_123456'; SET GLOBAL group_replication_bootstrap_group=OFF; "

docker exec -i mysql80-2 mysql -uroot -pRoot_123456 -e"

SELECT @@global.gtid_executed;

"

docker exec -i mysql80-2 mysql -uroot -pRoot_123456 -e "

START GROUP_REPLICATION USER='repl', PASSWORD='Repl_123456';

"

docker exec -i mysql80-3 mysql -uroot -pRoot_123456 -e"

SELECT @@global.gtid_executed;

"

docker exec -i mysql80-3 mysql -uroot -pRoot_123456 -e "

START GROUP_REPLICATION USER='repl', PASSWORD='Repl_123456';

"

所有节点

CONTAINER_NAME="mysql80-1" docker exec -i ${CONTAINER_NAME} mysql -uroot -pRoot_123456 -e " STOP GROUP_REPLICATION; "

docker exec -i mysql80-1 mysql -uroot -pRoot_123456 -e " STOP GROUP_REPLICATION; "

master 节点

docker exec -i mysql80-1 mysql -uroot -pRoot_123456 -e "
# RESET MASTER;  -- 这会情况所有数据
RESET REPLICA ALL;
"

docker exec -i mysql80-1 mysql -uroot -pRoot_123456 -e "
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
"

slave 节点

docker exec -i mysql80-2 mysql -uroot -pRoot_123456 -e "
STOP GROUP_REPLICATION;
RESET MASTER;
RESET REPLICA ALL;

START GROUP_REPLICATION;
"

查看从节点恢复状态

检查连接错误:在从节点上运行以下命令,查看恢复通道的报错信息

docker exec -i mysql80-2 mysql -uroot -pRoot_123456 -e "
SELECT * FROM performance_schema.replication_connection_status 
WHERE CHANNEL_NAME = 'group_replication_recovery'\G
"

查看具体报错:同样检查 replication_applier_status_by_worker 看看有没有拉取日志的报错

docker exec -i mysql80-2 mysql -uroot -pRoot_123456 -e "
SELECT * FROM performance_schema.replication_applier_status_by_worker 
WHERE CHANNEL_NAME = 'group_replication_recovery'\G
"

docker exec -i mysql80-2 mysql -uroot -pRoot_123456 -e "
CHANGE REPLICATION SOURCE TO SOURCE_USER='repl', SOURCE_PASSWORD='Repl_123456' FOR CHANNEL 'group_replication_recovery';
"