MHA架构介绍

MHA架构:

MHA(Master High Availability)是一款开源的mysql高可用程序,MHA 搭建的前提是MySQL集群中已经搭建了MySql Replication环境,有了Master/Slave节点。做用是监测Master节点故障时会提高主从复制环境中拥有最新数据的Slave节点成为新的master节点。同时,在切换master期间,MHA会经过从其余的Slave节点来获取额外的信息来避免一致性的问题,整个的切换过程对于应用程序而言是彻底透明的。MHA还提供了master节点在线切换功能,即按需切换master/slave节点。mysql

 

MHA 服务的角色:

MHA Manager: 一般单独部署在一台独立机器上管理 master/slave 集群,每一个master/slave 集群能够理解为一个application。sql

MHA Node: 运行在每台mysql 服务器(master/slave)上。它经过监控具有解析和清理logs功能来加快故障转移。服务器

 

MHA 在自动切换的过程当中会从宕掉的MySql master节点中保存二进制日志,以保证数据的完整性。可是若是master节点直接宕机了呢,或者网络直接不能联通了呢?MHA就没有办法获取master的二进制日志,也就没有办法保证数据的完整性了。这也就是为何MHA应该与MySql主从复制结合起来。这样的话,只要有一个slave节点从master节点复制到了最新的日志,MHA就能够将最近的二进制日志应用到其余的slave节点上,这样就能够最大限度上保证数据的完整性。网络

 

MHA 自动切换的原理:

从宕机崩溃的master保存二进制日志事件(binlog events);架构

识别含有最新更新的slave;app

应用差别的中继日志(relay log)到其余的slave;ssh

应用从master保存的二进制日志事件(binlog events);工具

提高一个slave为新的master;spa

使其余的slave链接新的master进行复制;线程

 

MHA 工具组件:

Manager节点:

masterha_check_ssh:MHA依赖的环境监测工具;

masterha_check_ssh: MySql复制环境检测工具;

masterha_manager: MHA 服务主程序;

masterha_check_status: MHA运行状态探测工具;

masterha_master_monitor: MySql master节点可用性检测工具;

masterha_switch: master 节点切换工具;

masterha_conf_host: 添加或删除配置的节点;

masterha_stop: 关闭MHA服务的工具;

Node节点:

save_binary_logs:保存和复制master节点的二进制日志;

apply_diff_relay_logs: 识别差别的中继日志事件并应用于其余的slave;

purge_relay_logs:清除中集日志(不会阻塞SQL线程);

相关文章
相关标签/搜索