- MHA高可用解决方案简介
MHA(Master High Availability),由日本DeNA公司youshimaton(现就职于Facebook公司)开发。MHA能做到在10~30秒之内自动完成数据库的Failover,Failover的过程中,能最大程度上保证数据的一致性。
该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。
半同步复制,可以大大降低数据丢失的风险。MHA可以与半同步复制结合起来。
MHA高可用集群,要求一个复制集群中需要有三台数据库服务器,一主二从,不支持多实例。出于机器成本的考虑,淘宝也在该基础上进行了改造,淘宝TMHA支持一主一从。
注意:必须使用独立的数据库节点,不支持多实例。
- MHA企业架构图
- Manager工具包主要包括以下几个工具:
masterha_check_ssh 检查MHA的SSH配置状况
masterha_check_repl 检查MySQL复制状况
masterha_manger 启动MHA
masterha_check_status 检测当前MHA运行状态
masterha_master_monitor 检测master是否宕机
masterha_conf_host 添加或删除配置的server信息
masterha_master_switch 控制故障转移(自动或者手动)
- Node工具包(这些工具通常由MHA Manager的脚本触发,无需人为操作)主要包括以下几个工具:save_binary_logs 保存和复制master的二进制日志
apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的从节点
slave filter_mysqlbinlog 去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
purge_relay_logs 清除中继日志(不会阻塞SQL线程)
- MHA实现原理
最后修改于 2019-08-26 17:17:31
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

