MGR 单主模式&多主模式

发布网友 发布时间:2024-10-22 15:24

我来回答

1个回答

热心网友 时间:2024-11-07 07:44

MGR(组复制)两种运行模式

单主模式 下,组复制具有自动选主功能,每次只有一个

server成员接受更新。单写模式group内只有一台节点可写可读,其他节点只可以读。对于group的部署,需要先跑起primary节点(即那个可写可读的节点,read_only=0)然后再跑起其他的节点,并把这些节点一一加进group。其他的节点就会自动同步primary节点上面的变化,然后将自己设置为只读模式(read_only=1)。当primary节点意外宕机或者下线,在满足大多数节点存活的情况下,group内部发起选举,选出下一个可用的读节点,提升为primary节点。primary选举根据group内剩下存活节点的UUID按字典序升序来选择,即剩余存活的节点按UUID字典序排列,然后选择排在最前的节点作为新的primary节点。

多主模式 下, 所有的 server 成员都可以同时接受更新。group内的所有机器都是primary节点,同时可以进行读写操作,并且数据是最终一致的。

相关参数 : group_replication_single_primary_mode
是否启动单主模式,如果启动,则本实例是主库,提供读写,其他实例仅提供读

多主模式切换单主模式
# 所有节点执行
mysql> stop group_replication;
mysql>set global group_replication_enforce_update_everywhere_checks=OFF;
mysql>set global group_replication_single_primary_mode=on;

# 主节点(172.16.2.185)执行
set global group_replication_bootstrap_group=on;
start GROUP_REPLICATION;
set global group_replication_bootstrap_group=OFF;

# 从节点(3307、3308)执行
start GROUP_REPLICATION;

# 查看MGR组信息
mysql> select * from performance_schema.replication_group_members;

单主切换到多主模式

MGR切换模式需要重新启动组复制,因些需要在所有节点上先关闭组复制,设置 group_replication_single_primary_mode=OFF 等参数,再启动组复制。

# 停止组复制(所有节点执行):
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;

# 其他节点执行
mysql>STARTGROUP_REPLICATION;

msyql 5.7
# 查看MGR组信息
SELECT * FROM performance_schema.replication_group_members;
查看读写权限
select @@read_only, @@super_read_only;
show variables like 'read_only';

mysql 8.0
# 查看MGR组信息
mysql>SELECT * FROM performance_schema.replication_group_members;
可以看到所有节点状态都是online,角色都是PRIMARY(mysql 8.0),MGR多主模式搭建成功。

验证:读写权限

写入数据测试:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com