前言
复习MHA,练习MHA工具,包括测试,master在线切换主机,master离线切换主机
|NODE|IP|ROLE|
|-|-|-|
|T1|192.168.179.191|master,MHA-node|
|T2|192.168.179.192|slave,MHA-manager|
|T3|192.168.179.193|slave,MHA-node|
MHA测试工具
检查 MySQL 复制状况
一般在启动MHA之前检查masterha_check_repl --conf=/app/tools/masterha/app1.cnf检查 MHA 的 SSH 配置状况
masterha_check_ssh --conf=/app/tools/masterha/app1.cnf检测当前 MHA 运行状态
masterha_check_status --conf=/app/tools/masterha/app1.cnf
MHA自动转移(主从切换)流程
- MHA检查到master节点宕机
- MHA检查配置文件
- MHA关闭master节点以防万一
新主节点的恢复
此步包括选择从slave中按数据最接近master的原则选择新的master(如果某slave配置了candidate_master=1,则必为主节点)
- 新slave节点change master到新的master,然后进行数据差异检查,对齐
可以发现其中并没有配置任何用户,还是使用app1.cnf中的配置文件,所以使用的复制账号与监控账户跟之前是一样的,所以才需要在每个节点上(包括slave)都进行相同账号的创建和授权
如果旧主重启,默认情况下MHA不会自动将其重新加入集群,也就是说可能需要手动切换,或者通过MHA故障切换脚本(这个脚本要自己写)
MHA手动切换
手动切换的前提时MHA没有启动,否则会触发自动转移
检查MHA状态
masterha_check_status --conf=<file>检查MHA监控与配置
masterha_check_repl --conf=<file>手动切换
masterha_master_switch --master_state=dead --conf=/app/tools/masterha/app1.cnf --dead_master_host=192.168.179.191 --dead_master_port=3306 --new_master_host=192.168.179.192 --new_master_port=3306 --ignore_last_failover #dead_master_host请参考配置文件,只能写配置文件中有的host(必须与配置相同,配置中是IP那么就不能写主机名)
MHA在线切换
:up:在线切换指的是master与slave都正常工作时进行配置
恢复
检查MHA状态
masterha_check_status --conf=<file>检查MHA监控与配置
masterha_check_repl --conf=<file>查看参数
#查看Seconds_Behind_Master(从服务器当前与主服务器之间的数据同步滞后时间s) #slave节点 show slave status\G; #查看TIME #master节点 show processlist;在线切换主库
masterha_master_switch --master_state=alive --conf=/app/tools/masterha/app1.cnf --new_master_host=192.168.179.193 --orig_master_is_new_slave --running_updates_limit=1000 --interactive=0 #--orig_master_is_new_slave 将原master变成新slave #Seconds_Behind_Master值必须小于--running_updates_limit指定的值 #TIME(show processlist;中的TIME最大值)必须小于--running_updates_limit指定的值
本文著作权归作者 [ wymm ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。






