一 简介:mha+cetus高可用架构
二 环境
1 mysql 5.7 并行复制+GTID
2 cetus最新版
3 mha0.57
二 安装
1 安装mha-rpm包
2 做免密认证
3 替换文件
使用 mha_ld/src 替换所有文件/usr/share/perl5/vendor_perl/MHA/目录的所有同名文件
使用 mha_ld/masterha_secondary_check替换masterha_secondary_check命令 which masterha_secondary_check
4 配置cetus.cnf配置文件
管理信息
middle_ipport=127.0.0.1:7001
middle_user=admin
middle_pass=admin
5 配置mha.cnf
我只贴出不同的点
[server default]
proxy_conf=/data/mha/cetus.cnf//这里配置
注意点:因为是cetus控制,所以这里的MHA并不需要VIP,道理可证,不需要第一个脚本了,也能防止了脑裂
6 检测并运行
/usr/bin/masterha_check_ssh --conf=/data/mha/mha.cnf
/usr/bin/masterha_check_repl --conf=/data/mha/mha.cnf
/usr/bin/masterha_manager --conf=/data/mha/mha.cnf --ignore_last_failover &
7 切换演练
1 手动停止mysql主库
2 cetus观测
select * from backends 发现原主状态down 新主状态up 并且slave delay是NULL,session已经转移
3 测试成功
三 总结
1 不需要VIP的情况下能避免脑裂的风险,cetus自身的优势能及时更新主机列表
2 如果有延迟,mha会等待延迟应用完成后再进行切换,这点要注意,mysql5.7的并行复制能减少延迟的发生