mha的工作原理


1.检查阶段

<1>.监测到maser goway

<2>.多路由检测

<3>.重复检测4次(这个次数固定的,无法修改)

<4>.检测ssh是否正常

<5>.检测配置(主要检测集群中有哪些机器,哪些机器可以正常访问,哪些机器已经dead,binlog,

候选master,relay_log_purge,read_only)

<6>.再一次检测master状态


2.关闭服务阶段

为了防止造成数据异常,关闭服务器阶段。可以调用 master_ip_failover_scripts 脚本关闭服务器

3.恢复阶段

(1).master恢复阶段

<1>.找出最近的slave和最旧的slave.

<2>.复制未发送出去的binlog并保存在manager上(T1).

<3>.使用最新的slave恢复其他的slave,使所有的slave处于同一个时间点

<4>.选取新的master

<5>.将T1和master进行对比,生成差异binlog,并重做,保存此时的binlog和pos(T2)   

此时可以调用master_ip_failover_scripts对外开启服务

(2).slave恢复阶段

并行将T1和slave对比生成差异binlog,并重做

(3).slave信息修改阶段

(1).在newmaster上执行reset slave all  

(2).在其他slave上执行change master binlog和pos在T2

(3).修改mha配置文件

4.检查阶段(报告阶段)

可以调用report_scripts脚本检查新的集群是否正常



具体日志如下:


 mha-工作原理_yua

 mha-工作原理_原理_02

 mha-工作原理_yua_03

 mha-工作原理_yua_04

 mha-工作原理_yua_05