码迷,mamicode.com
首页 > 数据库 > 详细

Mysql通过MHA实现高可用

时间:2020-06-13 12:36:03      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:监测   服务器   就是   lan   png   数据   mysql 主从   发送   解析   

简介

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原理

服务角色

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会提供诸多工具程序,常见的如下所示

Manager节点

# masterha_check_ssh:MHA 依赖的 ssh 环境监测工具;
#  masterha_check_repl:MYSQL 复制环境检测工具;
#  masterga_manager:MHA 服务主程序;
#  masterha_check_status:MHA 运行状态探测工具;
#  masterha_master_monitor:MYSQL master 节点可用性监测工具;
#  masterha_master_swith:master:节点切换工具;
#  masterha_conf_host:添加或删除配置的节点;
#  masterha_stop:关闭 MHA 服务的工具。

Node节点

这些工具都是由MHA Manager的脚本触发,无须认为操作

# save_binary_logs:保存和复制 master 的二进制日志;
# apply_diff_relay_logs:识别差异的中继日志事件并应用于其他 slave;
# purge_relay_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地址。
工作原理

技术图片

# MHA工作原理总结为以下几条:
# 1 从宕机崩溃的 master 保存二进制日志事件(binlog events);
# 2 识别含有最新更新的 slave ;
# 3 应用差异的中继日志(relay log) 到其他 slave ;
# 4 应用从 master 保存的二进制日志事件(binlog events);
# 5 提升一个 slave 为新 master ;
# 6 使用其他的 slave 连接新的 master 进行复制。

环境配置

MHA 对 MYSQL 复制环境有特殊要求,例如各节点都要开启二进制日志及中继日志,各从节点必须显示启用其read-only属性,并关闭relay_log_purge功能等,这里对配置做事先说明。

主机名 IP 服务角色 备注
Manager Manager控制器 监控管理
master 数据库主
slave1 数据库从
slave2 数据库从
解析hosts

Mysql通过MHA实现高可用

标签:监测   服务器   就是   lan   png   数据   mysql 主从   发送   解析   

原文地址:https://www.cnblogs.com/you-men/p/13113511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!