本文转载自: https://www.93bok.com
之前已经完成了MGR集群的单主模式搭建,在生产环境中,我们有时候想改变一下MGR的模式,但是又不想停止mysql服务的正常运行和正常提供服务,本文就来说说,该怎么在不影响mysql正常提供服务的前提下,从单主模式转换为多主模式,即在线转换
注意: 多点写入会存在冲突检查,这耗损性能挺大的,官方建议采用网络分区功能,在程序端把相同的业务定位到同一节点,尽量减少冲突发生几率。
单主模式之前已经搭建过,可参考之前文章,这里直接接着单主模式继续操作即可。
MGR在线转换单主---多主
1、在原来的单主模式的主节点上(nongziyi22.xin)执行如下操作:
mysql> stop GROUP_REPLICATION;
mysql> set global group_replication_single_primary_mode=off;
mysql> set global group_replication_enforce_update_everywhere_checks=ON;
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
2、对于其它节点(nongziyi.27和nongziyi29),执行以下操作:
mysql> stop GROUP_REPLICATION;
mysql> set global group_replication_allow_local_disjoint_gtids_join=ON;
mysql> set global group_replication_single_primary_mode=off;
mysql> set global group_replication_enforce_update_everywhere_checks=ON;
mysql> start group_replication;
查看谁是MGR集群的主节点
和单主不一样,这里每一台都是主节点,单主就会显示出来哪一台才是主数据库
测试多主模式
测试是否3个节点都能进行写操作,之前单主模式中,除了主,别的机器是无法写入数据的
1、在nongziyi22这台主机上插入一条数据看看能否写入
mysql> insert into nongkaige.ziyi values (3,'huanglihua');
2、在nongziyi27这台主机插入一条数据看看能否写入
mysql> insert into nongkaige.ziyi values (4,'nongkaige');
3、在nongziyi29这台主机插入一条数据看看能否写入
mysql> insert into nongkaige.ziyi values (5,'pipixia');