- MHA(Master High Availability)是一个免费的开源工具,使用Prel开发。
- MHA更多关注点是主从复制中的主DB.
- 当主DB崩溃时,快速的在从服务器中找到最佳服务器。
- 在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
- 主服务器宕机时,MHA会尝试从主服务器尽可能多的保存二进制日志,最大程度保证事务的不丢失。如果主服务器硬件或者网络出现问题(ssh无法访问),肯定也就无法保存二进制日志了
- MHA可以与半同步复制结合起来
MHA功能
MHA主从切换过程
- 2可以手动设置从服务器不参与选举
- 3弥补其他从服务器数据差异
- 4如果重复的主键等会使MHA停止进行故障转移
- 5虚拟IP切换
MHA提供两个主要优点:
- 自动故障切换:有助于意外的主站故障,崩溃等等(故障切换也可以手动完成)。
- 快速在线主切换:在执行内核更新,MySQL升级,硬件升级等常规计划或计划维护操作时有用。
MHA演示架构(基于GTID)
MHA配置步骤
- SSH->故障转移过程中保存原主服务器二进制日志,配置虚拟IP地址等
- 日志点和GTID(推荐)
- ssh和复制链路的监测
MHA实例
确保gtid在集群中所有的服务器中启动
show variables like 'gtid_mode';