MGR有单主模式和多主模式,取决于组复制参数group_replication_single_primary_mode是off还是on,默认是on,开启单主模式
已搭建好的mgr单主集群(10.45.53.31,172.16.23.170,172.16.23.171)升级为多主集群的步骤测试
- 查看3节点的组复制情况和当前primary节点
select * from performance_schema.replication_group_members;
show status like 'group_replication_primary_member';
shard12为主节点
- 停3节点的组复制,并修改组复制参数
(1)为避免不必要的后台切换主节点,最好最后停主节点的组复制
stop group_raplication;
(2)除了group_replication_single_primary_mode,group_replication_enforce_update_everywhere_checks在单主和多主模式下也要设置不同值。
单主模式下group_replication_enforce_update_everywhere_checks必须为OFF(默认是OFF),多主模式下因为多节点同时写入,建议设为on,对是否串行(SERIALIZABLE) 隔离和外键级联进行检查。(在业务不强求是REPEATABLE-READ这种较高隔离等级的情况下,隔离级别最好设为READ-COMMITTED)。
set global group_replication_single_primary_mode=off;
set global group_replication_enforce_update_everywhere_checks=on;
- 起组复制
show master status;--查看Executed_Gtid_Set最多的节点,选其为初始节点
set global group_replication_bootstrap_group=on;
start group_raplication;
set global group_replication_bootstrap_group=off;
其余两节点直接start group_raplication;即可
- 检查当前组复制
发现多主模式下的group_replication_primary_member没有特定值
且三个节点的超级只读模式super_read_only均是off
- 建测试表,测试读写,三节点均可读写
- 同时相似的步骤可以将多主转为单主模式