场景:原master(192.168.1.113)停止,MHA主动把主库功能切换到备用master(192.168.1.24),同时slave(192.168.1.150)指向新的master。
1、mha每次自动切换之后都会结束自身进程(可以安装安装一个进程工具,通过该工具结合脚本来管理进程。可以参考官方资料:https://code.google.com/p/mysql-master-ha/wiki/Runnning_Background),并在日志目录/var/log/masterha/app1(在app1.cnf定义的)下生成成功或失败标记(sys.failover.complete/error),下一次要启动mha之前要把这些标记文件删除,否则mha无法正常启动,因为有了这些标记文件,mha认为已经切换结束
2、重新启动原master,开启read_only,并建立同步关系指向新master(根据宕机时,日志记录的binlog的文件名和偏移量,恢复从这里开始)
3、把原master相关信息添加到app1.cnf(因为宕机时,MHA把相关数据删除了),检查集群复制情况,若有报错:Slaves settings check failed! ,则做以下操作
4、执行切换:masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.1.113 --new_master_port=3306 --orig_master_is_new_slave --running_updates_limit=10000
(这里报了个低级错误:sh: /usr/local/bin/master_ip_online_change: Permission denied,折腾了好久知道,原来是master_ip_online_change没有执行权限。。。)