MySQL高可用管理工具MHA简介


MHA简介

MHA(Master High Availability)是使用Perl语言编写的一套MySQL故障自动切换的工具软件,用于保障数据库的高可用性。它的功能是能在0~30秒内实现主MySQL故障转移,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。MHA目前在MySQL高可用方面是一个相对成熟的解决方案。

MHA集群的结构

MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以单独部署在一台独立的机器上管理多个Master−Slave集群,也可以部署在一台Slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的Master节点,当Master出现故障时,它可以自动将最新数据的Slave提升为新的Master,然后将所有其他的Slave重新指向新的Master,整个故障转移过程对应用程序完全透明。

MySQL

MHA的工作原理

相较于其它HA软件,MHA的目的在于维持MySQL Replication中Master库的高可用性,其最大特点是可以修复多个Slave之间的差异日志,最终使所有Slave保持数据一致,然后从中选择一个充当新的Master,并将其它Slave指向它。具体工作流程如下:

  • 当Master出现故障时,通过对比Slave之间IO线程读取Master Binlog的位置,选取最接近的Slave做为latest Slave。
  • 其它Slave通过与latest Slave对比生成差异中继日志。
  • 在latest Slave上应用从Master保存的Binlog,同时将latest Slave提升为Master。
  • 在其它Slave上应用相应的差异中继日志并开始从新的Master开始复制。

发表评论

评论数量:0