专栏首页性能与架构Mysql 集群高可用方案 MHA

Mysql 集群高可用方案 MHA

MHA是什么?

MHA(master high availability) 是用来保证 Mysql 集群高可用性的,对 master 进行监控,发现 master 出现故障后,自动进行故障转移,从众多 slave 中选举出新的 master,并使其他 slave 与新 master 进行同步

主要特点是故障处理速度快,最大程度上保证数据不丢失

工作原理

当 master 出现故障后,MHA 会尽快抢救数据,尝试到 master 中获取二进制日志,如果不是物理故障,通常可以成功拿到

选举出新的 master,规则是看哪个 slave 上的数据是最新的

找出最新 slave 后,其他 slave 会对比最新 slave 的数据,看自己有哪些差距,形成差异日志

如果从故障 master 中成功获取了二进制日志的话,会在这个最新 slave 上进行回放,保证数据一致

把这个最新 slave 提升为新的 master

其它 slave 应用相应的差异日志,并开始从新的 master 开始复制

优势

(1)故障处理速度快

一般在 30s 内就可以完成

(2)数据安全性好

slave 之间使用差异日志,保证了数据的一致,通过半同步复制的配合,几乎可以保证数据不丢失

(3)易扩展

使用 Perl 开发,开源,开放接口,支持其他语言开发扩展

修改原有功能代码和扩展开发都很方便

(4)可以监控多个集群

一个 MHA 管理服务器可以管理多个集群

不足

(1)只监控 master

MHA 只保证了 master 的高可用,并没有监控 slave 的状态,例如某 slave 出现复制中断、延迟增加等问题,都是不知道的

(2)没有集成虚拟IP的配置

在故障转移时,为使对外透明,需要使用虚拟IP,MHA没有自动实现VIP,需要我们自己实现

(3)安全问题

MHA 要求所有服务器之间都配置SSH免登录,存在一定的安全隐患,如果某台服务器出现了安全问题,那么就可能影响其他服务器

MHA 是目前非常成熟的高可用性方案,这里先大体了解下MHA,之后再详细介绍配置过程

本文分享自微信公众号 - 性能与架构(yogoup),作者:杜亦舒

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-08-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL主从复制原理

    image.png 主从复制的目的 1. 数据同步备份 master发生故障后,可以马上切换到slave,降低服务风险 2. 读写分离 可以把写操作放在ma...

    dys
  • InnoDB 日志文件大小设为多大合适?

    InnoDB 日志文件的作用 Innodb 数据表崩溃后,再次启动时,MySQL会扫描日志文件,看哪些记录不在表空间中,对其进行 redo 操作,从而完成数据恢...

    dys
  • Linux nginx日志按天分割实例

    nginx的日志有个小缺点,日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件非常大,不便于管理 这就需要我们自己来实现了,按日期每...

    dys
  • leetcode: 100. Same Tree

    Petrichor_
  • Data Structures and Algorithms Basics(013):Two Pointers

    用户5473628
  • 保护共享技术的云安全贴士

    公共云服务解决方案仍然还将继续保持其强劲的增长势头,因为他们可以快速的实现部署实施,有比私有云更低的成本,而且仅仅只需企业组织的IT工作人员提供最少的支持。然而...

    静一
  • 同是3年开发经验,为什么你的技术比别人差很多?

    你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差),...

    Java高级架构
  • Python数据解析 - jsonpat

    参考文档 http://goessner.net/articles/JsonPath/

    用户2398817
  • CIA Vault7最新泄露文档:樱花盛开

    多份维基解密于2017年6月15日披露的文件显示,CIA早在2006年便开始了一项名为“樱花盛开”(Cherry Blossom)的项目。曝光的文档资料详实,图...

    FB客服
  • 机器学习算法Python实现--线性回归分析

    代表我们要拟合出来的方程到真实值距离的平方,平方的原因是因为可能有负值,正负可能会抵消

    统计学家

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动