MGR脑裂后无法自动恢复数据一致性,因其Paxos机制仅保证多数派写入成功,不保证所有节点最终一致;网络分区导致GTID分叉,触发MY-011526错误,且MGR不允许回退GTID或自动合并冲突事务。
不能靠自动修复,必须人工介入判断哪边数据可信,再手动重置 GTID 并重建复制关系。
MGR 的 Paxos 机制只保证“多数派写入成功”,不保证“所有节点数据最终一致”。一旦发生网络分区导致脑裂,两个子集群各自产生新事务,GTID 集合就会分叉。此时 START GROUP_REPLICATION 会直接报错 [my-011526],因为本地已执行的 GTID 超出了当前组的已知范围。
this member has more executed transactions than those present in the group. local transactions: xxx:1-12 > group transactions: xxx:1-11
group_replication_allow_local_disjoint_gtids_join=ON,也仅适用于“尚未写入”的孤立节点,对已产生新事务的脑裂节点无效跳过这步直接操作等于覆盖真实业务数据。可信集群 = 网络分区期间持续对外提供写服务、且应用连接未中断的那一组节点。
SELECT MEMBER_ID, MEMBER_ROLE, MEMBER_STATE FROM performance_schema.replication_group_members;
SELECT * FROM mysql.gtid_executed; —— 可信集群的 GTID 序列应更长、无断点quorum=2),其写入属于非法状态,不可信目标是让冲突节点以“全新空白实例”身份重新加入,而非尝试同步旧数据。
RESET MASTER;(⚠️ 此操作不可逆,确保已备份)STOP GROUP_REPLICATION;
SET GLOBAL sql_log_bin = OFF;
DROP DATABASE IF EXISTS your_db; 或用 mysqldump + mysql 恢复SET GLOBAL sql_log_bin = ON;
START GROUP_REPLICATION;
注意:RESET MASTER 会重置 mysql.gtid_executed 和 binlog 文件,这是绕过 [my-011526] 错误的唯一安全方式。任何试图保留本地 binlog 的方案都会失败。
数据库层恢复只是半程。应用若仍连着旧主或使用失效连接池,几秒内就会再次写入冲突节点。
SELECT * FROM mysql.gtid_executed; 中真正的难点从来不在 SQL 命令怎么敲,而在于你能否在告警轰炸时快速锁定业务真实写入路径,并说服开发团队配合重启服务——否则所有数据库操作都是在给下一次脑裂铺路。
Tplink企业版路由器WiFi名称的默认设置介绍(Tplink企业版路由器WiFi名称的默认设置是什么)
Tplink路由器灯常亮无法上网的原因分析(如何解决Tplink路由器灯常亮无法上网的问题)
Tplink千兆企业级路由器自动重启的作用和优势介绍(如何设置Tplink千兆企业级路由器自动重启功能)
一根天线的tplink路由器有哪些(一根天线的Tplink路由器的特点和优势介绍)
tplink路由器外网访问不了nas(Tplink路由器外网访问NAS的原因分析)
Tplink无法搜到路由器的原因分析(如何解决Tplink无法搜到路由器的问题)