企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
>[info] MHA 是什么 **MHA是mysql高可用解决方案之一。** 1. 当mysql主库发生故障,MHA提升从库为主库,确保主库高可用。 2. MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 >[info] 流程图 ![](https://img.kancloud.cn/b4/0c/b40ce3db6a3379483e20d6c0ba3adae4_1389x951.png) #### **设计图拆解分析:** ![](https://img.kancloud.cn/4a/80/4a80edec9fa778fc75d014ae0336b34d_1344x635.png) 4个长方形代表一共4台服务器, 下面的3台上装MHA\_node 和 一主2从(一台master+2台slave), 上面那台服务器则装了MHA \_manager, manager 是mha的心跳检测官和总指挥官,node是manager的员工。 #### **1. manager干啥:** 1. **心跳检测:** 检测master是否宕机。 2. **一旦宕机**,manager会以发送指令给node的方式协调整个主从切换的过程。 ***** 虽然我们上面3台mysql,每台都有ip地址, 但是我们应用程序不直接访问这些IP,我们暴露给应用程序的是一个虚拟IP,简称VIP,应用程序通过 VIP访问master。期初,这个VIP(192.168.83.129)是位于我们的master(192.168.168.83.130),后面主机宕机了,VIP漂移到 slave1(192.168.83.131)或者slave2(192.168.83.132)的服务器上。那么应用程序就会写入其中的slave了。 ***** ![](https://img.kancloud.cn/2e/ed/2eed0fef6ab00aa3670edb778cf9dddd_1238x786.png) 如图所示,这个VIP的切换过程就是通过manager触发IP script脚本完成的。 >[info] MHA 由什么组成 1. **MHA Manager(管理节点)** 建议将MHA Manager单独部署在一台独立的机器上管理多个master-slave集群。 2. **MHA Node(数据节点)** MHA Node运行在每台MySQL服务器上,是MHA Manager的员工,接收Manager的命令并执行。 >[info] MHA各个工具包的作用 **manager工具包:** ![](https://img.kancloud.cn/90/e2/90e25288848dcae08ea00fbb9dc6f4b6_1186x378.png) ![](https://img.kancloud.cn/9b/49/9b49075cf330869132a38c37b9ba5a2c_1192x43.png) **node工具包:** ![](https://img.kancloud.cn/75/63/756347cf9672878f4a9d5d6e09029449_1197x258.png) >[info] MHA工作原理 1. 从宕机崩溃的master保存二进制日志事件(binlog events) 2. 识别含有最新更新的slave 3. 应用差异的中继日志(relay log)到其他的slave; 4. 应用从master保存的二进制日志事件(binlog events); 5. 提升一个slave为新的master; 6. 使其他的slave连接新的master进行复制;