layout: post
title: Mysql数据复制—-MHA原理
date: 2018-03-01
tags: [“Mariadb”,”软件服务”]


一、MHA简介

MHA这个项目已经很古老了,但是技术还是比较成熟的,很多企业都还在使用 。主要为了解决Mysql的HA问题。它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

官方简介:https://code.google.com/archive/p/mysql-master-ha/

二、MHA原理

软件组成:

MHA Manager(管理节点)(mha4mysql-manager-0.55-0.el6.noarch.rpm
MHA Node(数据节点)(mha4mysql-node-0.54-0.el6.noarch.rpm

下载地址:https://code.google.com/archive/p/mysql-master-ha/downloads

MHA Manager的作用:

运行一些工具,比如masterha_manager工具实现自动监控MySQL Master和实现master故障切换,其它工具实现手动实现master故障切换、在线mater转移、连接检查等等。一个Manager可以管理多个master-slave集群。

Manager工具包主要包括以下几个工具:

masterha_check_ssh 检查MHA的SSH配置状况
masterha_check_repl 检查MySQL复制状况
masterha_manger 启动MHA
masterha_check_status 检测当前MHA运行状态
masterha_master_monitor 检测master是否宕机
masterha_master_switch 制故障转移(自动或手动)
masterha_conf_host 添加或删除配置的server信息

MHA Node的作用:

部署在所有运行MySQL的服务器上,无论是master还是slave。主要作用有三个。

1、保存二进制日志

如果能够访问故障master,会拷贝master的二进制日志

2、应用差异中继日志

从拥有最新数据的slave上生成差异中继日志,然后应用差异日志。

3、清除中继日志

在不停止SQL线程的情况下删除中继日

Node工具包:这些工具通常由MHA Manager的脚本触发,无需人为操作)主要包括以下几个工具:

save_binary_logs 保存和复制master的二进制日志
apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的slave
filter_mysqlbinlog 去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
purge_relay_logs 清除中继日志(不会阻塞SQL线程)

工作原理:

当master出现故障时,通过对比slave之间I/O线程读取masterbinlog的位置,选取最接近的slave做为latestslave。其它slave通过与latest slave对比生成差异中继日志。在latest slave上应用从master保存的binlog,同时将latest slave提升为master。最后在其它slave上应用相应的差异中继日志并开始从新的master开始复制。

在MHA实现Master故障切换过程中,MHA Node会试图访问故障的master(通过SSH),如果可以访问(不是硬件故障,比如InnoDB数据文件损坏等),会保存二进制文件,以最大程度保证数据不丢失。MHA和半同步复制一起使用会大大降低数据丢失的危险。

工作流程:

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

为什么使用MHA:

1、故障切换快(0-30秒实现切换)
2、master故障不会导致数据不一致(关于数据的一致性,还是推荐使用半同步模式)
3、无需修改当前的MySQL设置(配置简单)
4、无需增加大量的服务器
5、无性能下降
6、适用于任何存储引擎(其实在生产线上还是使用Innodb)

本分部分内容摘自:http://dbaplus.cn/news-11-530-1.html

 

 

 

文档更新时间: 2020-05-25 12:16   作者:张尚