Mysql高可用之MHA+Atlas读写分离
2026-07-14 15:29:37 mha ( master high availability )目前在mysql高可用方面是一个相对成熟的解决方案 ,它由日本dena公司 youshimaton (现就职于facebook公司)开发,是-套优秀的作为mysql高可用性环境下故障切换和主从提升的高可用 软件。在mysql故障切换过程中, mha能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过 程中, mha能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 github地址: https://github.com/yoshinorim 该软件由两部分组成: mha manager (管理节点)和mha node (数据节点)。mha manager可以单独部署在一台 独立的机器上管理多个master-slave集群,也可以部署在一台slave节点 上。mha node运行在每台mysql服务器上, mha manager会定时探测集群中的master节点,当master出现故障时, 它可以自动将最新数据的slave提升为新的 master ,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。 在mha自动故障切换过程中, mha试图从宕机的主服务器上保存二进制日志 ,最大程度的保证数据的不丢失,但这并 不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问, mha没法保存二进制日志 ,只进行故障转移而丢失了 最新的数据。使用mysql 5.5的半同步复制,可以大大降低数据丢失的风险。mha可以与半同步复制结合起来。如果只 有一个slave已经收到了最新的二进制日志, mha可以将最新的二进制日志应用于其他所有的slave服务器.上,因此可以保 证所有节点的数据一致性。 目前mha主要支持一主多从的架构,**要搭建mha,要求一个复制集群中必须最少有三 台数据库服务器,**一主二从, 即一 台充当master ,一台充当备用master ,另外一台充当从库,因为至少需要三台服务器,出于机器成本的考虑,淘宝也在 该基础上进行了改造,目前淘宝tmha已经支持一注- -从。(出自 :《深入浅出mysql(第二版)》 ) 官方介绍: https://code.google.com/p/mysql-master-ha/