MySQL mha 比较_MySQL高可用方案MHA的一些总结和思考

MySQL高可用方案中MHA绝地是一个相当成熟的实现。对于数据的切换,其实MGR也能很好的完成,也就是说,数据层面的角色切换已经刻意很平滑的做好了,但是对于访问IP的处理,还是有很大的空间,MHA提供了很多可选的空间来支持。

常见的组合方式有:

MHA+VIP

MHA+keepalive

MHA+Zookeeper

当然MHA+VIP是一种很成熟和经典的方案了。

一般来说都有以下类似的架构方式,假设架构模式为一主两从。对于应用访问来说,提供的IP信息就依据绑定的VIP地址为准。VIP可以根据节点的数据状态在不同节点间漂移,达到无缝切换的高可用。

MHA Manager是一个核心的调度器,有了它可以调度多套环境,当然MHA Manager自身也有单点,所以会考虑两套MHA

Manager节点来做冗余,实际上是做交叉互备,比如有100套环境,两个MHA

Manager节点,那就每个分50个节点,如果Manager节点出现故障,可以很顺利的交接给Manager2来接管。

对于应用来说,就是统一通过VIP的方式来访问。如果是在这个基础上考虑中间件的方案,则数据访问的策略会更加复杂一些。

fb69557fff592a4ad04fddc6b0dc99c7.png

对于这样的一个基本方案,如果从多个维度来下钻会发现有很多需要注意的地方,所以问题无处不在,可喜的是在MHA中几乎都考虑到了。如果说得简单点,主要有下面的几个场景需要考虑:

数据库主库宕机

数据库从库宕机

重启数据库主库

重启数据库从库

从库应用延迟

主从网络延迟

主库服务器宕机

从库服务器宕机

一主多从切换优先级

网络抖动的切换

手工主从切换

主节点IP调整

从节点IP调整

添加从节点

剔除从节点

网络抖动的预防

半同步插件对于MHA的影响

自定义MHA脚本

所以上面的方案多多少少都需要考虑,如果用下面的图来表示,就会大体有如下的一些红色警告。所以各个层面都会有可能存在问题和异常,如何尽可能不影响业务,保持业务科持续访问是重中之重。

c227f3bd113b9c42e8052d9dc13cfea1.png

举一个比较纠结的问题,如果MHA

Manager节点到数据库主库的网络发生抖动,导致短时间不可访问,我们是希望这个过程是不会做灾难切换的,但是如果时间过长了,有2分钟或者3分钟都不可访问,这个时候是切还是不切呢。这个时候信息还是相对较少的,如果我们加入应用服务器这个角色,如果应用服务器是可访问的,那么就不切,如果应用访问受到影响,那还是切吧。而且根据我们的测试,在MHA

0.56和0.57里面还是有一些差别。测试了多套环境,测试了多个特性,结合起来才会发现对于MHA的考虑会更加全面,而换句话说,了解了原委,才能更好的掌握MHA,也才能看到更多的问题,来尝试定制它,使得它更加满足于当前的业务需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL MHA(Master High Availability)是一套用于实现MySQL高可用环境下故障切换和主从复制的软件。它的主要目的是解决MySQL单点故障的问题,并在故障切换过程中能够在0-30秒内自动完成切换操作。MHA通过最大程度上保证数据的一致性来实现真正意义上的高可用性。 MHA的组成包括管理节点(manager node)、MHA节点(MHA node)和MySQL节点(MySQL node)。管理节点负责监控MySQL集群的状态,并在需要时触发故障切换操作。MHA节点是用于安装和配置MHA软件的节点,其中包括管理节点和备份节点。MySQL节点则是实际运行MySQL数据库服务的节点,包括主节点和从节点。 搭建MySQL MHA的过程可以分为以下几个步骤: 1. 准备MHA环境,包括安装必要的组件和配置文件。 2. 安装MHA的所有组件,包括管理节点和备份节点。 3. 在管理节点上配置脚本,以监控MySQL集群的状态并触发故障切换操作。 4. 修改配置文件app1.cnf,配置MySQL节点的主机名、用户名、密码、工作目录等信息。 5. 测试服务是否正常运行,确保MySQL集群的各个节点能够正常通信。 6. 进行故障模拟和修复的测试,以验证MHA的故障切换和主从复制功能。 在使用MHA时,需要了解合理配置MHA的配置文件[3]。MHA的配置文件类似于MySQL的my.cnf文件,采用param=value的形式进行配置。配置文件通常包括每个MySQL节点的主机名、用户名、密码、工作目录等信息。 综上所述,MySQL MHA是一套用于实现MySQL高可用环境下故障切换和主从复制的软件,通过自动完成故障切换操作并保证数据一致性,实现了真正意义上的高可用性。搭建MySQL MHA的过程包括准备环境、安装组件、配置脚本和文件、测试服务、故障模拟与修复等步骤。在使用MHA时,需要合理配置MHA的配置文件来确保其正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值