首页 > 技术文章 > MHA 常用维护命令

carry00 2018-12-14 11:59 原文

MHA 常用维护命令

1、查看ssh登陆是否成功

masterha_check_ssh --conf=/etc/masterha/app1.cnf

2、查看复制是否建立好

masterha_check_repl --conf=/etc/masterha/app1.cnf

3、启动mha

nohup masterha_manager --conf=/etc/masterha/app1.cnf > /tmp/mha_manager.log  < /dev/null 2>&1 & 

当有slave节点宕掉的情况是启动不了的,加上--ignore_fail_on_start即使有节点宕掉也能启动mha

nohup masterha_manager --conf=/etc/masterha/app1.cnf --ignore_fail_on_start > /tmp/mha_manager.log  < /dev/null 2>&1 & 

4、检查启动的状态

masterha_check_status --conf=/etc/masterha/app1.cnf

5、停止mha

masterha_stop  --conf=/etc/masterha/app1.cnf

6、failover后下次重启

每次failover切换后会在管理目录生成文件app1.failover.complete ,下次在切换的时候会发现有这个文件导致切换不成功,需要手动清理掉。

rm -rf /masterha/app1/app1.failover.complete

也可以加上参数--ignore_last_failover

7、手工failover

手动切换MHA需要停止MHA:

手动切换的意思是,当一个master 挂掉以后,手动来指定slave来接管master.

masterha_master_switch --master_state=dead --conf=/etc/masterha/app1.cnf --dead_master_host=192.168.2.128 --dead_master_port=3306 --new_master_host=192.168.2.129 --new_master_port=3306 --ignore_last_failover  

 

8、masterha_manager是一种监视和故障转移的程序

另一方面,masterha_master_switch程序不监控主库。 masterha_master_switch可以用于主库故障转移,也可用于在线总开关

9、手动在线切换

手动在线切换MHA-需要停止MHA

当原来的master维修好以后,我们把他变成了slave,我们希望它继续担任master,那么这个切换的过程叫做'在线切换'。

masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.119.74 --orig_master_is_new_slave 

或者

masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.119.74 --orig_master_is_new_slave --running_updates_limit=10000 

--orig_master_is_new_slave切换时加上此参数是将原master变为slave节点,如果不加此参数,原来的master将不启动

--running_updates_limit=10000 切换时候选master如果有延迟的话,mha切换不能成功,加上此参数表示延迟在此时间范围内都可切换(单位为s),但是切换的时间长短是由recover时relay日志的大小决定

手动在线切换mha,切换时需要将在运行的mha停掉后才能切换

在备库先执行DDL,一般先stop slave,一般不记录mysql日志,可以通过set SQL_LOG_BIN = 0实现。然后进行一次主备切换操作,再在原来的主库上执行DDL。这种方法适用于增减索引,如果是增加字段就需要额外注意

原文转载

推荐阅读