MySQL高可用架构的核心目标是保障数据库服务在故障时持续可用,避免单点失效。主流方案围绕主从复制构建,但单纯异步复制存在数据丢失风险,因此需引入半同步或增强半同步机制,确保至少一个从库写入成功后主库才返回确认。
MHA(Master High Availability)曾是经典自动故障转移工具,但依赖Perl环境且社区维护减弱。当前更推荐MGR(MySQL Group Replication),它基于Paxos协议实现多节点强一致性,支持单主与多主模式,内置自动选主、脑裂防护和流控机制,大幅降低人工干预需求。
实际部署中,建议三节点MGR集群(奇数节点防分裂),所有节点均配置为可读写(多主模式需应用层兼容),并通过MySQL Router作为智能代理,自动感知拓扑变化并重定向连接。Router缓存元数据,故障切换通常在10秒内完成,对应用透明。

AI做图,仅供参考
自动容灾离不开可观测性支撑。需集成Prometheus+Grafana监控复制延迟、节点状态、流控指标;配合Alertmanager设置关键告警,如“PRIMARY节点失联超5秒”或“多数派不可达”。所有告警触发后,应联动脚本自动执行健康检查与恢复流程,而非仅通知人工。
数据校验与定期演练是容灾可信的基石。使用pt-table-checksum每日校验主从数据一致性;每季度模拟网络分区、强制kill主节点等场景,验证MGR自动恢复路径与应用连接重建能力。真实故障中,80%问题源于未验证的配置或过时的应急预案。
最终,高可用不是架构堆砌,而是“可控降级+快速收敛”的平衡。例如,当仅剩两个MGR节点在线时,主动禁用写入并返回明确错误码,比强行服务导致数据不一致更可靠。架构价值,在于让故障成为可预期、可测量、可闭环的日常运营环节。