1. 单主模式和多主模式的区
1.1 部署方式
两者部署方式基本相同,多主模式需额外设置以下两个参数:
bash
group_replication_single_primary_mode = OFF
group_replication_enforce_update_everywhere_checks = ON
1.2 read_only
- 对于单主模式,Group Replication 会自动将 Secondary 节点的 super_read_only 和 read_only 设置为 ON。
1.3 自增主键
在单主模式下,auto_increment_offset 和 auto_increment_increment 默认为 1。
多主模式下,auto_increment_offset 和 auto_increment_increment 则分别取⾃ server_id 和
group_replication_auto_increment_increment。
1.4 Group Replication 的限制
很多限制实际上是针对多主模式的。
2. 单主模式和多主模式的在线切换
在组复制中,单主模式和多主模式不能混合部署。
如果配置不兼容,会出现如下错误:
ERROR\] \[MY-011529\] \[Rep1\] Plugin group_replication reported: 'The member configuration is not compatible with the group configuration. Variables such as group_replication_single_primary_mode or group_replication_enforce_update_everywhere_checks must have the same value on every server in the group. (member configuration option: \[group_replication_single_primary_mode\], group configuration option: \[group_replication_enforce_update_everywhere_checks\]).'
在 MySQL 8.0.13 之前,不支持在线调整集群模式。如果要调整,只能重启整个组复制。
从 MySQL 8.0.13 开始,支持在线调整集群模式。
sql
-- 单主模式切换为多主模式
SELECT group_replication_switch_to_multi_primary_mode();
-- 多主模式切换为单主模式
SELECT group_replication_switch_to_single_primary_mode(member_uuid);
-- 切换单主模式下的 Primary 节点
SELECT group_replication_set_as_primary(member_uuid);