一、MHA概述
1、传统的MySQL主从架构存在的问题
MySQL主服务器出故障后就无法写入数据了
2、MHA简介
一套优秀的MySQL高可用环境下故障切换和主从复制的软件
MySQL故障过程中,MHA能做到0-30秒内自动完成故障切换
3、MHA组成
MHA Manager(管理节点)和 MHA Node(数据节点)
MHA Manager 可以单独部署在一台独立的机器上,管理多个 master-slave 集群(Manger是单独一台监控master服务器健康状态的服务器。);也可以部署在一台 slave 节点上。MHA Node 运行在每台 MySQL 服务器上,MHA Manager 会定时探测集群中的 master 节点。当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master,然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完 全透明。
4、MHA特点(优势)
在 MHA 自动故障切换过程中,MHA 试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过 SSH 访问,MHA 没法保存二进制日志,就会出现只进行故障转移但丢失了最新的数据的情况。
使用 MySQL 5.5 的半同步复制,可以大大降低数据丢失的风险。MHA 可以与半同步复 制结合起来。如果只有一个 slave 已经收到了最新的二进制日志,MHA 可以将最新的二进 制日志应用于其他所有的 slave 服务器上,因此可以保证所有节点的数据一致性。
5、MHA架构
目前MHA支持一主多从架构,最少三台服务,即一主两从
二、MHA高可用案例

MHA高可用配置
三、具体过程
3.1、实验需求
MHA 监控 MySQL数据库健康状态,在主服务器故障时进行自动切换,不影响业务。
3.2、实验思路
1.MHA架构
1)数据库安装
2)一主两从
3)MHA搭建
2.故障模拟
1)主库失效
2)备选主库成为主库
3)从库2将备选主库指向为主库
3.故障修复
1)坏库修复,启动
2)在修复好的库上建立新主从关系
3)修改manager配置文件,添加修好的库的记录
4)重启mha
3.3、实验环境
MHA高可用配置
3.4、实验步骤
配置MySQL主从同步
1、安装 MySQL 数据库
在三台 MySQL 节点上分别安装数据库,MySQL 版本请使用 5.6.36,cmake 版本请使
用 2.8.6。
1.1、安装编译依赖的环境
MHA高可用配置
1.2、安装 gmake 编译软件
MHA高可用配置
1.3、安装 MySQL 数据库
MHA高可用配置
1.4、修改 Master 的主配置文件/etc/my.cnf 文件,三台服务器的 server-id 不能一样,删除字符集utf8的语句
MHA高可用配置
2、配置从服务器
这里要注意 server-id 不能相同。
需要删除字符集utf8的语句
1、主备服务器/Slave1
MHA高可用配置
2、从服务器/Slave2
MHA高可用配置
3、每个MySQL做两个软链接,为MHA服务
MHA高可用配置
4、启动MySQL服务
MHA高可用配置
5、配置MySQL一主两从
主:
MHA高可用配置
从:
MHA高可用配置
6、设置两个从库为只读模式
MHA高可用配置
7、在 Mysql1 主库插入两条数据,测试是否同步
主:
MHA高可用配置
从1:
MHA高可用配置
从2:
MHA高可用配置
安装MHA软件
1、所有服务器上都安装 MHA 依赖的环境,首先安装 epel 源
MHA高可用配置
2、MHA软件包对于每个操作系统版本不一样,这里Centos7.6必须选择0.57版本,在所有服务器上必须先安装 node 组件,最后在 MHA-manager 节点上安装 manager 组件,因为 manager 依赖 node 组件。
注意:所有服务器上必须安装node组件,最后在MHA-manager节点上安装manager组件
MHA高可用配置
3、在 MHA-manager 上安装 manager 组件
MHA高可用配置
manager 安装后在/usr/local/bin 下面会生成几个工具,主要包括以下几个:
MHA高可用配置
node 安装后也会在/usr/local/bin 下面会生成几个脚本(这些工具通常由 MHA
Manager 的脚本触发,无需人为操作)主要如下:
MHA高可用配置
4、配置无密码认证
MHA高可用配置
5、配置 MHA
MHA高可用配置
MHA高可用配置
6、创建MHA软件目录并拷贝配置文件
MHA高可用配置
配置文件解析MHA高可用配置
7、测试ssh无密码认证,如果正常最后会输出successfully,如下所示
MHA高可用配置

相关文章: