MySQL MHA详解(一)——基本原理

今天继续给大家介绍MySQL的相关知识,本文主要内容是MySQL MHA架构的基本知识。

一、MySQL MHA简介

MySQL MHA,即Master High Availability,即MySQL高可用,是一个MySQL主从架构下实现故障切换和主从提升的解决方案。在MySQL主从同步架构中,当部分主库发生故障后,MHA能够在0-30秒时间内完成数据库的故障切换工作,并且尽最大努力保持数据一致性。
目前MHA主要支持一主多从的架构,在搭建MHA时至少要有一个Master主库和两个Slave从库,MHA架构支持任何存储引擎。

二、MySQL MHA故障切换工作原理

在MySQL MHA检测到MySQL架构中MySQL主库发生故障后,MHA试图从宕机的MySQL主库上保存二进制日志,最大程度的保证数据不会丢失。并选择一个Slave从库,将其提升为新的MySQL主从架构中的主库,并设置其他的Slave从库指向新的MySQL主库。具体过程如下:
1、MySQL MHA试图从宕机崩溃的MySQL主库中保存二进制日志。
2、MySQL MHA试图识别数据最新的Slave。
3、将该Slave数据库的中继日志同步到其他的从库,保证新的MySQL主从同步架构中数据的一致性。
4、应用从Master中保存的二进制日志。
5、将一个Slave提升为新的master。
6、控制其他Slave指向新的master。

三、MySQL MHA工具包简介

MySQL MHA由MySQL Manager(管理节点)和MySQL Node(数据节点)组成,数据节点部署在每一台MySQL数据库上,管理节点部署在一台独立的机器上,由管理节点负责架空数据节点的状态,当发现数据节点宕机时,管理节点会立即控制数据节点进行故障切换相关工作。
在安装MySQL MHA管理节点后,设备上会存在以下工具包,这些工具包及其作用如下:
1、masterha_check_ssh
负责检查MHA的SSH配置链接情况
2、masterha_check_repl
检查MySQL主从同步的复制情况
3、masterha_manager
启动MySQL MHA
4、masterha_check_status
检测当前MHA的状态
5、masterha_master_switch
自动或者手动控制MHA故障转移
6、masterha_conf_host
添加或者删除配置的server信息
同样的,在安装MySQL MHA数据节点后,设备上还会存在以下工具包,这些工具包及其作用如下:
1、save_binary_logs
用于保存或复制master的二进制日志
2、apply_diff_relay_logs
用于识别差异的中继日志事件,并将差异的事件应用于其他的slave
3、purge_relay_logs
清除中继日志
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(MySQL,mysql,数据库,database,MySQL高可用,MySQL,MHA)