资料内容:
一、简介
MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从
复制架构提供了 automating master failover 功能。MHA 在监控到 master 节点
故障时,会提升其中拥有最新数据的 slave 节点成为新的master 节点,在此期间,
MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA 还提供了
master 节点的在线切换功能,即按需切换 master/slave 节点。
MHA 是由日本人 yoshinorim(原就职于DeNA现就职于FaceBook)开发的
比较成熟的 MySQL 高可用方案。MHA 能够在30秒内实现故障切换,并能在故障
切换中,最大可能的保证数据一致性。目前淘宝也正在开发相似产品 TMHA, 目前
已支持一主一从。
二、MHA 服务
2.1 服务角色
MHA 服务有两种角色, MHA Manager(管理节点)和 MHA Node(数据节
点):
MHA Manager:
通常单独部署在一台独立机器上管理多个 master/slave 集群(组),每个
master/slave 集群称作一个 application,用来管理统筹整个集群。
MHA node:
运行在每台 MySQL 服务器上(master/slave/manager),它通过监控具备解析
和清理 logs 功能的脚本来加快故障转移。
主要是接收管理节点所发出指令的代理,代理需要运行在每一个 mysql 节点
上。简单讲 node 就是用来收集从节点服务器上所生成的 bin-log 。对比打算提升
为新的主节点之上的从节点的是否拥有并完成操作,如果没有发给新主节点在本地
应用后提升为主节点