深入浅出 MySQL MHA主从故障切换机制详解 高可用终极方案

MHA基本概念

MHA(Master High Availability)是一套成熟的MySQL高可用解决方案。

核心功能特性

  1. 快速故障转移

    • 10-30秒内自动完成故障检测和主从切换
  2. 数据一致性保障

    • 通过对比各从库的relay log差异
  3. 灵活的部署方式

    • 支持标准的主从复制架构

组成部分

1. MHA Manager(管理节点)

  • 持续监控Master节点的健康状态
  • 自动触发故障转移流程

2. MHA Node(数据节点)

  • 实时保存和传输二进制日志
  • 接收并应用中继日志

故障处理流程

  1. 保存宕机主库的二进制日志
  2. 定位最新的从库
  3. 修复其他从库
  4. 恢复未同步的binlog
  5. 主从切换操作
  6. 重建复制拓扑

优势比较

优点

  1. 自动故障转移速度快
  2. 数据一致性保障
  3. 性能表现优异
  4. 集中式监控管理

局限性

  1. 需要至少一个从库
  2. 故障转移期间会有短暂写入中断

主备切换

可靠性优先策略

  1. 停止主库写入
  2. 等待备库追上主库
  3. 提升备库为新主库
  4. 开启新主库写入

可用性优先策略

  1. 直接提升备库为新主库
  2. 允许新主库立即接受写入

主备延迟原因

  1. 备库机器性能问题
  2. 读写压力分配
  3. 大事务操作