深入浅出 MySQL MHA主从故障切换机制详解 高可用终极方案
MHA基本概念
MHA(Master High Availability)是一套成熟的MySQL高可用解决方案。
核心功能特性
-
快速故障转移
- 10-30秒内自动完成故障检测和主从切换
-
数据一致性保障
- 通过对比各从库的relay log差异
-
灵活的部署方式
- 支持标准的主从复制架构
组成部分
1. MHA Manager(管理节点)
- 持续监控Master节点的健康状态
- 自动触发故障转移流程
2. MHA Node(数据节点)
- 实时保存和传输二进制日志
- 接收并应用中继日志
故障处理流程
- 保存宕机主库的二进制日志
- 定位最新的从库
- 修复其他从库
- 恢复未同步的binlog
- 主从切换操作
- 重建复制拓扑
优势比较
优点
- 自动故障转移速度快
- 数据一致性保障
- 性能表现优异
- 集中式监控管理
局限性
- 需要至少一个从库
- 故障转移期间会有短暂写入中断
主备切换
可靠性优先策略
- 停止主库写入
- 等待备库追上主库
- 提升备库为新主库
- 开启新主库写入
可用性优先策略
- 直接提升备库为新主库
- 允许新主库立即接受写入
主备延迟原因
- 备库机器性能问题
- 读写压力分配
- 大事务操作