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_STATE | ONLINE | 成员加入组并正常参与多数派 |
| MEMBER_STATE | RECOVERING | 正在做分布式恢复,尚未提供读写 |
| MEMBER_STATE | ERROR / OFFLINE | 已被驱逐或未启动,需查 error log |
| MEMBER_ROLE | PRIMARY / SECONDARY | 单主模式下的主与从角色 |
| MEMBER_HOST | db01: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 对网络延迟敏感,同城多机房之外的跨地域部署会明显拉高提交延迟与失败率;跨地域容灾更适合异步复制或专门的容灾方案。
网络分区时少数派一侧会整体停写,这是保证一致性的设计行为而不是故障;运维预案要写清如何在恢复后重新加入被驱逐的成员。