MHA架构介绍

MHA架构:

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

 

MHA 服务的角色:

MHA Manager: 通常单独部署在一台独立机器上管理 master/slave 集群,每个master/slave 集群可以理解为一个application。

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

 

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

 

MHA 自动切换的原理:

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

识别含有最新更新的slave;

应用差异的中继日志(relay log)到其他的slave;

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

提升一个slave为新的master;

使其他的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线程);

 

转载于:https://my.oschina.net/u/3866910/blog/1942532

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值