MHA failover流程

简介:

MHA manager启动后,启动流程以及failover流程如下:


1. 启动前准备情况

2. 检查数据库服务器状态,获取相关的配置参数

3. 测试SSH连接是否成功

4. 测试MHA node是否可用

5. 开始检查SLAVE的差异日志应用权限

6. 确定当前的复制架构

7. 调试master_ip_failover_script脚本

8. 调试shutdown_script

9. 设置二次检查的主机masterha_secondary_check

10. MHA启动完毕,进入检测过程

11. 检测到MASTER挂了

12. 通过定义的二次检测,确认MASTER是否真的挂了

13. 确认MASTER挂了,开始执行failover流程

14. 再次尝试连接MASTER和MASTER 的SSH

15. 再次检查SLAVE的配置是否有变化,是否符合failover条件

16. 正式开始failover

17. 再次对SLAVE的配置做检查

18. 对原Master的master_ip_failover_script和shutdown_script的做操作,关闭SSH或者关闭数据库

19. 开始做差异日志的恢复,获取SLAVE最后得到的binlog位置

20. 获取原MASTER的binlog日志

21. 确定新的MASTER

22. 在新的MASTER上应用差异的binlog日志

23. 获取新MASTER的binlog位置

24. 如果有master_ip_failover,那么给新master设置VIP或者设置域名

25. 开始回去其他SLAVE,也是从原MASTER的binlog对比来做恢复

26. 差异日志应用完毕后,切换所有的slave到新MASTER

27. failover操作完成,生成failover报告

28. master manager退出



其中:

    

#master_ip_failover_script:
首先启动的时候会调用这个脚本--检测status
/opt/master_ip_failover_script.sh –command=status –ssh_user=root –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306
然后在正式failover过程中的第二步,Dead Master Shutdown Phase阶段会在次执行。  第18步,综合shutdown_script关闭数据库或者服务器
/opt/master_ip_failover_script.sh –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306 –command=stopssh –ssh_user=root
在正式failover过程中的第3.4步骤中(选举新的master以后,应用差异的binlog后),会再次执行。在第24步,执行VIP或者域名切换操作
/opt/master_ip_failover_script.sh –command=start –ssh_user=root –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306 –new_master_host=192.168.153.151 –new_master_ip=192.168.153.151 –new_master_port=3306 –new_master_user=’mha’ –new_master_password=’mha’


#shutdown_script:
首先启动的时候会执行这个脚本,执行时间紧跟着master_ip_failover_script第一次执行后面
/opt/shutdown_script.sh –command=status –ssh_user=root –host=192.168.153.150 –ip=192.168.153.150
第二次执行是在master_ip_failover_script第二次执行后面
/opt/shutdown_script.sh –command=stopssh –ssh_user=root –host=192.168.153.150 –ip=192.168.153.150 –port=3306

#report_script=”" //通知脚本
在masterha_manager自动切换完成的最后会调用一次这个脚本。
report_script.sh –orig_master_host=(dead master’s hostname) –new_master_host=(new master’s hostname) –new_slave_hosts=(new slaves’ hostnames, delimited by commas) –subject=(mail subject) –body=(body)


#master_ip_online_change_script:
在使用masterha_master_switch –conf=/etc/app1.cnf –master_state=alive –new_master_host=192.168.153.151主动切换mysql master的时候会调用.
在online切换的第二阶段,拒绝写入原master的时候执行。
/opt/master_ip_online_change_script.sh –command=stop –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306 –orig_master_user=’mha’ –orig_master_password=’mha’ –new_master_host=192.168.153.151 –new_master_ip=192.168.153.151 –new_master_port=3306 –new_master_user=’mha’ –new_master_password=’mha’
然后会在new master上执行
/opt/master_ip_online_change_script.sh –command=start –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306 –orig_master_user=’mha’ –orig_master_password=’mha’ –new_master_host=192.168.153.151 –new_master_ip=192.168.153.151 –new_master_port=3306 –new_master_user=’mha’ –new_master_password=’mha’


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
芯片
通用译码器
二——十进制译码器也称BCD译码器,它的功能是将输入的BCD码(4位二级制码)译成对应的10个十进制输出信号,因此也称4线——10线译码器。常用的二——十进制集成译码器型号有74LS42、T1042、T4042等。
2271 0
通用译码器
|
存储 Web App开发 安全
mitmproxy安装与配置
mitmproxy是一个免费的开源交互式的HTTPS代理工具。它类似于其他抓包工具如WireShark和Fiddler,支持抓取HTTP和HTTPS协议的数据包,并可以通过控制台形式进行操作。mitmproxy具有两个非常有用的组件:mitmdump和mitmweb。mitmdump是mitmproxy的命令行接口,可以直接抓取请求数据,而mitmweb是一个web程序,可以清楚地观察mitmproxy抓取的请求数据。
1076 3
mitmproxy安装与配置
|
6月前
|
存储 机器学习/深度学习 安全
阿里云计算型实例解析:c7/c8y/c8i/c9i性能对比与场景化选型指南参考
在阿里云目前的活动中,属于计算型的热门云服务器实例规格主要有计算型c7、计算型c8y、计算型c8i和计算型c9i。这些实例规格既有七代和八代实例规格,也有最新推出的九代实例规格。本文将对这些实例规格进行详细对比,并提供场景化选型指南参考。
|
负载均衡
keepalived基础介绍
Keepalived是一个基于VRRP协议的软件,用于实现高可用的IPVS负载均衡服务,具备故障转移、健康检查和邮件通知等功能。
422 2
keepalived基础介绍
|
关系型数据库 MySQL 数据库
MySQL事务隔离级别及默认隔离级别的设置
在数据库系统中,事务隔离级别是一个关键的概念,它决定了事务在并发执行时如何相互隔离。MySQL提供了四种事务隔离级别,每种级别都解决了不同的并发问题。本文将详细介绍这些隔离级别以及MySQL的默认隔离级别。
|
机器学习/深度学习 算法 大数据
提取图像特征方法总结 是那种很传统的方法~
提取图像特征方法总结 是那种很传统的方法~
522 4
|
云安全 运维 安全
远程桌面时连接不上远程计算机是什么问题
有一些其他可能导致远程桌面连接失败的因素,例如远程计算机已关闭、远程计算机上安装的软件与远程桌面发生冲突等。针对这些问题,可以采取相应的解决措施,来查看处理。
|
域名解析 开发工具
elasticsearch 8.3版本安装和集群部署
elasticsearch 8.3版本安装和集群部署
773 1
|
云栖大会 Android开发 开发者
题库来啦!开发者社区6.0版本功能大更新
开发者社区6.0版本功能简介及内测用户招募。
20471 4
题库来啦!开发者社区6.0版本功能大更新
|
NoSQL Java Linux
redis哨兵模式搭建和使用
本文主要介绍如何搭建Redis哨兵模式以及Springboot如何配置redis哨兵模式
1794 5
redis哨兵模式搭建和使用

热门文章

最新文章