暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MHA简介

原创 秋秋 2022-07-19
3418

MHA,即MasterHigh Availability Manager and Toolsfor MySQL,是采用perl语言编写的一个脚本管理工具,该工具仅适用于MySQL Replication环境,目的在于维持master主库的高可用性。MHA是自动的master故障转移和slave提升的软件包,基于标准的MySQL复制。MHA包含两个组成部分:MHA Manager(管理节点)和 MHA Node(数据节点)

下载地址:

https://github.com/yoshinorim/mha4mysql-manager

https://github.com/yoshinorim/mha4mysql-node


MHA部署

MHA Manager管理节点可以单独部署在一台独立服务器上管理多个master-slave集群,也可以部署在一台slave上。MHA Manager探测集群中的node节点,当发现master出现故障时,他可以自动将具有新数据的slave提升为新的master,然后将所有其他slave导向新的master上。整个故障转移过程对应用程序是透明的。MHA node数据节点可以运行在每台MySQL服务器上,它通过监控具备解析和清理logs功能的脚本来加快故障转移。


MHA原理

MHA的目的在于维持mysql replication 中master库的高可用性,其最大特点是可以修复多个slave之间的差异日志,最终使所有slave保持数据一致,然后从中选择一个充当新的master,并将其他slave指向它。当master出现故障时,可以通过对比slave之间I/O thread 读取主库binlog的position号,选取最接近的slave作为备选主库。其他的从库可以通过与备选主库对比生成差异的中继日志,在备选主库上应用从原来master保存的binlog,同时将备选主库提升为master。最后在其他slave上应用相应的差异中继日志并从新的master开始复制。


MHA的优缺点

优点

  1. 故障切换时,可以自行判断哪个从库与主库的数据最接近,然后切换到上面,可以减少数据的丢失,保证数据的一致性
  2. 支持binlog server,可提高binlog的传送效率,进一步减少数据丢失的风险
  3. 结合MySQL5.7的增强半同步功能,确保故障切换时数据不丢失
缺点
  1. 自动切换的脚本太简单了,而且比较老化,建议后期逐渐完善
  2. 搭建MHA架构,需要开启Linux系统互信协议,所以对于系统安全性来说是个不小的考验

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论