一 简介:MHA相关
二 版本 mha0.56 mha0.57 mha0.58
三 切换流程
0 主库已不可达
阶段一
1 从集群选出新主,根据新主同步的binlog信息进行拷贝binlog到MHA管理机上
阶段二
1 新主应用补全日志
2 绑定VIP打开读写和
阶段三
1 从库并行恢复数据
2 从库重新指向新主
阶段四
1 新主清除复制信息
四 相关参数
1 mysql_slave 健康
忽略健康参数 ignore_fail=1(存疑) 表示忽略mysql slave的复制进程进行切换(测试没有显示作用,存疑)
默认检测
2 mysql_delay 延迟
忽略延迟参数 check_repl_delay=0 表示忽略mysql slave的复制延迟进行切换(不建议添加)
3 master_binlog_server binlog配置
GTID模式下必须配置
[binlog1]
hostname=hostname
master_binlog_dir=
注意 此项关系到数据补全的作用,故障切换完成后要及时更改新主
4 防脑裂配置
perl切换脚本增加aprping vip命令,防止出现脑裂问题
五 故障相关场景
1切换成功场景
1 mysql主库挂掉 从库复制进程健康,延迟=0
2 mysql主库挂掉 从库复制进程监控,延迟>0
3 mysql主库挂掉 1 单个从库进程消失
2 单个从库复制进程停止
2 切换失败场景
1 mysql主库挂掉 单个从库复制进程异常发生复制错误
六 相关理论说明
1 MHA默认的检测机制
1 本身的检测机制 MHA服务周期性的检测主库,每秒进行周期性检测
ping-type: 1 select 1(执行) 1是默认 2 connect (会断开重新创建连接) 3 insert
ping_interval 默认3次,检测不到就进行切换
2 第二检测脚本
为了确保网络问题,会根据第二检测脚本从从库发起动作,确保不是单点网络问题