MySQL MHA 概念

2023-10-16  本文已影响0人  尹楷楷

HHA是啥

image.png

额外的增加了哪些节点?

MHA软件由两部分组成,Manager包和Node工具包,具体的说明如下

image.png

MHA如何进行故障转移的?

image.png image.png

从服务器之间的同步

因为多个从服务器同步数据有先后快慢。所以需要在
从属服务器之间先同步一下。保证所有从属服务器数据是同步的


image.png

进行选主

选主方式

image.png

VIP飘移

image.png

ps:在迁移过程中,应用有几秒钟是暂停服务的

旧主恢复后会自动恢复为一个从节点,与当前新主同步一下最新数据(自动)


image.png

过程总结

场景:主服务器挂了,从服务器不会切换到主服务器,从而引出高可用MHA方案 。

MHA故障发现

1、启动:前置检查(配置文件等,不细说)
2、运行过程:若master挂了,MHA如何认定需要进行故障转移?

故障转移:

1、切断外界链接(断开虚拟IP跟怀疑挂掉的主机链接),主从同步也断开
2、manager使用SSH拉取备份服务器的binlog(复制保存到manager)
3、由于binlog跟从服务器的relaylog的数据可能存在不一致,从而进入转移,必须先使得数据保持一致。
4、从属服务器之间进行比对,node会检查relaylog哪个是最新的(理解上不管他怎么检查吧),向其他节点发送差异数据并应用。
5、这时从属服务器的relaylog一致了,但和主服务器的binlog还可能不一致。这时将旧的master binlog差异的数据发送到从属服务器上并应用。
6、数据均一致后,面临以谁为主服务器进行迁移的问题?有三种方案

7、确定谁是主后,从服务器通过changer master命令完成主从链接。
8、将原虚拟IP指向新的主服务器
9、当旧的主服务器恢复正常,作为从服务器和新的主服务器进行同步(MHA自动完成)

问题

1、抽取的binlog是不完整。迁移过程中出现丢包、数据不完整?旧的主和binlog server数据不一致怎么办?需要dba人工介入。能解决95%的情况。剩下的5%的情况需要人工介入才能保证数据最终一致性
2、请问manager挂了怎么办?manager也是双击热备吗。
是的manager也是双机热备,不过manager始终只有一个提供服务,另一个备份节点只有当主manager挂了以后才会顶上
3、MHA还是有其用武之地的啊,毕竟不挑版本,不管你是官方mysql还是mariadb;兼容性好不挑食是MHA的优势,很多5年以上的老应用使用旧的MySQL版本不支持MGR等新特性。但也必须考虑高可用,MHA就是首选了。如果是新项目就别MHA了, 采用MGR全同步方案还是很棒的。

优缺点

优点:

缺点:

上一篇 下一篇

猜你喜欢

热点阅读