首页/数据/数据库速查/MGR(组复制)核心概念
主从复制与高可用53 条

MGR(组复制)核心概念

MySQL Group Replication:基于 Paxos 的一致性复制,节点自动选主、多数派确认提交;单主模式最常用,多主模式冲突需应用侧规避。

数据库速查数据更新于 2026-10-13

MGR 是什么

MySQL Group Replication 是基于 Paxos 类一致性协议的组复制:组内多数派确认后才提交,节点故障自动驱逐,单主模式下主节点宕机由组内自动选主。代价是写入需要多数派确认,因此对网络延迟敏感,通常部署在同城多机房;只有 InnoDB 引擎受支持,且每张表必须有主键。

基本信息

适用MySQL 5.7.17+ / 8.0,需 InnoDB 与主键
模式单主(single-primary,自动选主)/ 多主(multi-primary)
一致性多数派 ACK 才提交,节点故障自动驱逐
主要限制仅 InnoDB;表必须有主键;大事务受限
关键参数group_replication_transaction_size_limit(默认约 150MB)

成员状态怎么读

字段取值示例含义
MEMBER_STATEONLINE成员加入组并正常参与多数派
MEMBER_STATERECOVERING正在做分布式恢复,尚未提供读写
MEMBER_STATEERROR / OFFLINE已被驱逐或未启动,需查 error log
MEMBER_ROLEPRIMARY / SECONDARY单主模式下的主与从角色
MEMBER_HOSTdb01:33061成员通信地址,端口为 group_replication_local_address

最小检查

最小检查
SELECT MEMBER_HOST, MEMBER_STATE, MEMBER_ROLE FROM performance_schema.replication_group_members;   # 组内成员与角色
SHOW VARIABLES LIKE 'group_replication_group_name';     # 组标识,各成员必须一致
SHOW VARIABLES LIKE 'group_replication_single_primary_mode';   # 单主模式开关
SELECT * FROM performance_schema.replication_group_member_stats\G   # 事务冲突与队列情况
SHOW VARIABLES LIKE 'group_replication_transaction_size_limit';     # 大事务上限

典型使用场景

  • 替代传统主从加 MHA 的方案,要求自动选主且不发生数据分裂
  • 金融类场景要求提交多数派落盘,用组复制换取一致性
  • 同城两机房三节点部署,容忍单节点或单机房故障
  • 升级与扩容时滚动加入新节点,观察 RECOVERING 转 ONLINE 再继续
  • 排查写入被拒,确认是主键缺失、大事务超限还是网络分区
MGR 对网络延迟敏感,同城多机房之外的跨地域部署会明显拉高提交延迟与失败率;跨地域容灾更适合异步复制或专门的容灾方案。
网络分区时少数派一侧会整体停写,这是保证一致性的设计行为而不是故障;运维预案要写清如何在恢复后重新加入被驱逐的成员。

易错点

  • 表没有主键就上线:MGR 直接拒绝写入,必须在建表规范里强制主键并全量核查存量表
  • 超限大事务触发成员被驱逐:批量操作要拆批并控制单事务大小,别等报错才发现
  • 把 group_replication_local_address 配成业务端口:组通信应用独立端口,混用会导致成员无法加入
  • 用普通主从的思路理解停写:少数派停写是一致性设计的必然结果,预案要围绕多数派恢复来写

数据来源与参考

  • MySQL 8.0 Reference Manual: Group Replication

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌