MHA从启动到宕机处理的工作过程:

MHA从启动到宕机处理的工作过程:

Manager启动:

1读取--conf=.etc/mha/appl.cnf配置文件,获取配置信息

2获取到MHAnode节点相关信息(一主两从)

3调用脚本masterha_check_ssh脚本,通过ssh_user=root用户进行ssh互信检查

4调用masterha_chech_repl检查主从复制情况

5启动manager管理软件通过脚本masterha_master_monitorping_interval=2时间为间隔,持续监控主库的状态

6manager监控到主库master宕机后开始选主,选主的过程算法如下:

算法1:判断是否有<<强制主>>参数,如果有设置就将其设为主库,如果没有设置主参数就执行算法2

算法2:判断两个从库谁更新,将最新的设为主库,如果两个从库一样新就执行算法3

算法3:按照配置文件的书写顺序来选主例如配置文件中的serverl,server2server3

7当新主库选好后,就判断宕机前的主库是否能够ssh通,如果能联通,就通过脚本save_binary_logs将缺失部分的binlog立即保存到本地另外两台好的机器中。如果之前的主机不能ssh通,就判断是否开了gtid主从复制:

如果没有开gtid主从:

那么manager软件就会调用脚本apply_diff_relay_logs计算两台好机器的relay-log的差异,通过内容进行复杂的对比,

如果开gtid主从:

Manager软件也需要调用脚本apply_diff_relay_logs计算两计算两台好机器的relay-log的差异,只不过他对比的是gtid号而不是内容,效率更高。

最后进行数据补偿

8数据补偿之后,解除某一天机器从库的身份,将其变为主库,然后将另外一台从库的指针从新指向新的Master主库,构建新的主从关系。

9移除配置文件中的故障节点

10manager工作完成,软件执行程序自动退出(manager属于一次性的高可用)

额外的功能:

1提供了Binlog Server,实时的在异地保存主库的二进制日志,如果主库连不上,就让从库自动读这个文件。

2应用透明vip飘逸命令,自动实现让网站程序指向新的主库

3由于manager属于一次性的高可用,因此MHA自带了一个send_report功能要实时通知管理员

4自愈(待开发)

 

posted @ 2021-03-04 12:07  linuxTang  阅读(272)  评论(0)    收藏  举报