MySQL实现高可用架构之MHA

一 概述

MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。

在MySQL故障切换过程中,MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其他从节点获取额外信息来避免一致性方面的问题。

MHA还提供了master节点的在线切换功能,即按需切换master/slave节点。

MHA能做到0~30秒之内自动完成数据库的故障切换操作,并在进行故障切换的过程中,MHA能最大程度上保证数据的一致性,以达到真正意义上的高可用。

二 MHA服务

MHA服务有两种角色,分别是管理节点MHA Manager和数据节点MHA Node

MHA Manager:通常单独部署在一台独立机器上管理多个master/slave集群(组),每个master/slave集群称作一个application,用来管理统筹整个集群。

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

主要是接收管理节点所发出指令的代理,代理需要运行在每一个mysql节点上。简单讲node就是用来收集从节点服务器上所生成的bin-log。对比打算提升为新的主节点之上的从节点是否拥有并完成操作,如果没有发给新主节点在本地应用后再将从节点提升为主节点。

每个复制组内部和Manager之间都需要ssh实现无密码互连,只有这样,在Master出故障时,Manager才能顺利的连接进去,实现主从切换功能。

三 MHA的工作原理

  1. 从宕机崩溃的master节点保存二进制日志事件(bin-log events);
  2. 识别含有最新更新的slave;
  3. 应用差异的中继日志(relay log)到其他slave;
  4. 应用从master保存的二进制日志事件(bin-log events);
  5. 提升一个slave为新的master;
  6. 使用其他的slave连接新的master进行复制。

四 MHA提供的工具

Mananger节点

masterha_check_sshMHA依赖的ssh环境检测工具
masterha_check_replMySQL复制环境监测工具
masterga_managerMHA服务主程序
masterha_check_statusMHA运行检测工具
masterha_check_monitorMySQL master节点可用检测工具
masterha_master_swith:master节点切换工具
masterha_conf_host添加或删除配置的节点
masterha_stop关闭MHA服务的工具

Node节点:(这些工具通常由MHA Mananger的脚本出发,无需人为操作)

save_binary_logs保存和复制master的二进制日志
apply_diff-reply_logs识别差异和中继日志事件并应用于其他slave
purge_reply_logs清楚中继日志(不会阻塞SQL线程)

自定义扩展:

secondary_check_script通过多条网络路由检测master的可用性
master_ip_failover_script更新application使用的masterip
report_script发送报告
init_conf_load_script加载初始配置参数
master_ip_online_change_script更新master节点ip地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值