MHA复刻版MHA_Re_Edition测试版发布

Posted hcymysql

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MHA复刻版MHA_Re_Edition测试版发布相关的知识,希望对你有一定的参考价值。

注:目前还差一个masterha_master_switch(Online master switch)脚本没有重构完。努力编写中。

Github地址:​​https://github.com/hcymysql/MHA-Re-Edition​

mysql (MHA)重构版,由于MHA工具2018年已经停止维护更新,且不支持Gtid复制模式,在原版基础上增补功能难度较大,固考虑将其重构。

参考了原版MHA的故障切换思路,改进的地方如下:

1)无需打通ssh公私钥互信认证,只需在app1.cnf配置文件里提供用户名和密马(root权限)即可,这一步的作用是漂移VIP,工具会直接进入远程主机上执行ip addr add VIP

2)目前主流版本MySQL 5.7和8.0的复制模式是基于Gtid,因事务号是唯一的,更改同步复制源不需要知道binlog文件名和position位置点,固简化了在客户端部署agent做数据补齐。

3)无需安装,就两个文件,一个是(环境配置检查)可执行文件masterha_check_repl_mysql,一个是(故障自动转移autofailover和在线平滑切换online switch)可执行文件masterha_manager_mysql

4 ) 基于主从复制(Gtid复制模式)才可以运行,masterha_check_repl_mysql工具会检测,如果是基于binlog和position(位置点复制模式)不能运行。

5)AutoFailover自动故障转移VIP后,增加微信公众号报警通知(待完成)


配置文件(请按照app1.cnf范例模板严丝合缝的去设置)

参数解析:

# log日志输出文件

manager_workdir = /root/mha_log/app1.log


# 监控间隔时间,单位秒

connect_interval=1


# 开启调用其他从库去连接主库,如果不需要,则删除masterha_secondary_check这行内容

# 脚本会调用从库的mysql命令,默认读取路径是/usr/bin/mysql(已经写死在脚本里),如没有请创建一个软连接

masterha_secondary_check = 172.19.136.33,172.19.136.34


# 当从库出现延迟时,超过60秒内未同步完数据,强制开启VIP故障切换转移

running_updates_limit = 60


1)环境配置检查(先执行通过后,再执行
主程序masterha_manager_mysql
shell> chmod 755 masterha_check_repl_mysql
shell> ./masterha_check_repl_mysql --conf=app1.cnf

MHA复刻版MHA_Re_Edition测试版发布_故障切换


2)开启守护进程,主库故障后,VIP自动故障转移,其他从库自动change master to 指向新主库
shell> chmod 755 masterha_manager_mysql
shell> ./masterha_manager_mysql --conf=app1.cnf start

MHA复刻版MHA_Re_Edition测试版发布_配置文件_02

MHA复刻版MHA_Re_Edition测试版发布_故障切换_03

MHA复刻版MHA_Re_Edition测试版发布_故障切换_04


一、Autofailover故障自动切换的步骤:

1)MHA Re-Edition管理机每隔app1.cnf配置文件参数connect_interval=1(秒),去连接主库,当试图连接3次失败后,尝试去其他从库上去连接并执行select 1探测,这里需要你在app1.cnf配置文件里设置masterha_secondary_check = slave1,slave2

设置完后,slave1和slave2去连接,如果有一台从库可以连接到主库,不认定主库down掉,不进行故障转移操作,会在log日志中输出warning警告信息,提示网络有问题,请排查。

如果MHA Re-Edition管理机和其他slave从库都无法访问连接,则认定主库挂掉,开始进行故障切换。

2)如果你在app1.cnf配置文件里设置candidate_master = 1,指定了候选主库,则默认提升该新主库。

如果你没有在app1.cnf配置文件里设置candidate_master = 1,则根据从库执行的Gtid事件最新的将其提升为主库。

3)当从库出现延迟时,在app1.cnf配置文件里,超过参数running_updates_limit = 60 单位(秒)内,且未同步完数据,则强制开启VIP故障切换转移,并在log日志中输出warning警告信息。否则会一直等待60秒内执行完从库的Gtid事件。

4)其他从库会change master to改变同步源为候选主库,并在log日志中输出show master status新主库的状态信息。

5)关闭候选主库的set global super_read_only = 0只读权限

6)候选主库不执行reset slave all清空同步信息,这一步操作交给用户处理。

7)漂移VIP至新的主库。至此故障转移流程跑完。


二、在线平滑切换Online master switch(待完成):



以上是关于MHA复刻版MHA_Re_Edition测试版发布的主要内容,如果未能解决你的问题,请参考以下文章

vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译

vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译

Hello Mr.J——唠唠叨叨年终总结(2023复刻版)

超火的举牌加油小人生成器MATLAB复刻版(app designer)

超火的举牌加油小人生成器MATLAB复刻版(app designer)

《爱奇艺随刻版》添加频道教程