mysql select switch_【MySQL】【高可用】从masterha_master_switch工具简单分析MHA的切换逻辑...

本文介绍了MHA工具中的masterha_master_switch用于在线切换主从的逻辑。首先检查配置,然后选择合适的从库作为新主,关闭原主的非事务表,解锁并将其设为从库,而选中的从库变为新主。整个过程包括配置检查、拒绝更新、锁定表、切换从库等步骤,确保数据一致性。
摘要由CSDN通过智能技术生成

简介:masterha_master_switch作为一个切换工具被集成在MHA程序包中,

安装:编译安装MHA manager后会在/usr/local/bin/中生成二进制可执行程序masterha_master_switch。

使用:

$masterha_master_switch --help

Usage:

# For master failover

masterha_master_switch --master_state=dead

--global_conf=/etc/masterha_default.cnf

--conf=/usr/local/masterha/conf/app1.cnf --dead_master_host=host1

# For online master switch

masterha_master_switch --master_state=alive

--global_conf=/etc/masterha_default.cnf

--conf=/usr/local/masterha/conf/app1.cnf

See online reference

(http://code.google.com/p/mysql-master-ha/wiki/masterha_master_switch)

for details.

在这里,我习惯将一套主从的配置都放在app1.cnf中,并且更改为业务相关的名称,如mainBusiness.cnf

分析:

目标:获取masterha_master_switch的在线切换逻辑

环境:MHA manager 192.168.1.8

MHA node1+MySQL5.7+GTID 192.168.1.109+PORT3109 主

MHA node1+MySQL5.7+GTID 192.168.1.110+PORT3110 从

配置文件内容:

manager_workdir=/data/mha/mainBusiness #设置MHA的工作目录

manager_log=/data/mha/mainBusiness/manager.log #MHA manager的日志输出

remote_workdir=/data/mha/ #预设MHA node端的工作目录

master_binlog_dir= /data/mysql/3109/log/,/data/mysql/3110/log/ #预设MHA node端的binlog目录

#secondary_check_script= masterha_secondary_check -s 192.168.1.109 -s 192.168.1.110

secondary_check_script= masterha_secondary_check -s 192.168.1.109 -s 192.168.1.110 --user=root --master_host=192.168.1.109 --master_port=3109

ping_interval=1 #设置MHA manager的检测间隔(1秒)

[server1]

hostname=MySQL-Cent7-IP001109

ip=192.168.1.109

port=3109

ssh_user=root

ssh_port=22

candidate_master=1 #设置该节点是否可以提升为主,1为是,0否

check_repl_delay=0 #发生故障后是否检查本实例主从落后程度,0否,1是

[server2]

hostname=MySQL-Cent7-IP001110

ip=192.168.1.110

port=3110

ssh_user=root

ssh_port=22

candidate_master=1 #设置该节点是否可以提升为主,1为是,0否

check_repl_delay=0 #发生故障后是否检查本实例主从落后程度,0否,1是

在MHA manager端上执行:

$masterha_master_switch --master_state=alive --conf=/etc/mha/mainBusiness.cnf --orig_master_is_new_slave

#--master_state 指明在线切换

#--orig_master_is_new_slave 指定原先的主作为从库挂到新的主上

MHA manager端输出如下

#####################输出段1###########################

[info] MHA::MasterRotate version 0.57.

[info] Starting online master switch.. #开始在线切换

[info]

[info] * Phase 1: Configuration Check Phase.. #阶段1,检查配置

[info]

[warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.. #我这里没有使用全局参数文件,会有报错跳过,没关系

[info] Reading application default configuration from

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值