ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

部署 MHA 高可用

部署 MHA 高可用

目录

一、MySQL MHA

1.1 什么是MHA

1.2 MHA的组成

1.3 MHA的特点

1.4 MHA的工作原理

二、搭建MySQL MHA

2.1 环境

2.2 准备工作

2.3 安装MHA

2.4 在所有服务器上配置无密码认证

2.5 在manager节点上配置MHA

2.6 第一次配置需要在Master节点上手动开启虚拟IP

2.7 在manager节点上测试ssh

2.8 在manager节点上测试mysql主从连接

2.9 在manager节点上启动MHA

2.10 查看MHA状态

2.11 查看MHA日志

2.12 查看master VIP

2.13 MHA故障模拟

2.14 故障恢复

三、总结


一、MySQL MHA

1.1 什么是MHA

MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制

的软件。

MHA 的出现就是解决MySQL 单点的问题。

MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

1.2 MHA的组成

1、MHA Node(数据节点)

MHA Node 运行在每台 MySQL 服务器上。

2、MHA Manager(管理节点) 检测

MHA Manager 可以单独部署在一台独立的机器上,管理多个 master-slave 集群;

也可以部署在一台 slave 节点上。

MHA Manager 会定时探测集群中的 master 节点。当 master 出现故障时,它可以

自动将最新数据的 slave 提升为新的 master 然后将所有其他的 slave 重新指向新的

master。整个故障转移过程对应用程序完全透明。

1.3 MHA的特点

1、自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度

的保证数据不丢失

2、使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了

最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器

上,因此可以保证所有节点的数据一致性

3、目前MHA支持一主多从架构,最少三台服务,即一主两从

1.4 MHA的工作原理

1、从宕机崩溃的master 保存二进制日志事件(binlog events);

2、识别含有最新的更新 slave 日志

3、应用差异的中继日志(relay log)到其他的slave

4、应用从master保存的二进制日志事件

5、提升一个 salve 为新的master

6、使其他的slave连接行的master 进行复制。

二、搭建MySQL MHA

2.1 环境

1、MHA manager 节点服务器:CentOS7.6(64 位) manager/10.8.0.104 ,安装MHA node和 manager 组件

2、Master 节点服务器:CentOS7.6(64 位) mysql1/10.8.0.110 ,安装mysql5.7、MHA node组件

3、Slave1 节点服务器:CentOS7.6(64 位) mysql2/10.8.0.100 ,安装mysql5.7、MHA node组件

4、Slave2 节点服务器:CentOS7.6(64 位) mysql3/10.8.0.102 ,安装mysql5.7、MHA node组件

5、主从复制

2.2 准备工作

1、主从复制后将两个从库设置为只读模式

2、插入数据测试数据库同步

主库

从库

2.3 安装MHA

1、在所有服务器上安装MHA依赖环境

2、在所有服务器上安装node组件

3、在MHA manager节点上安装manager组件(10.8.0.104)

2.4 在所有服务器上配置无密码认证

1、在manager节点上配置所有数据库节点的无密码认证

2、在master节点上配置slave1和slave2节点的无密码认证

3、在slave1上配置数据库节点master和slave2的无密码认证

4、在slave2上配置数据库节点master和slave1的无密码认证

2.5 在manager节点上配置MHA

1、在 manager 节点上复制相关脚本到/usr/local/bin 目录

生成4个执行文件

2、复制master_ip_failover文件到/usr/local/bin目录下

3、修改master_ip_failover文件

添加内容

4、创建 MHA 软件目录并拷贝配置文件,这里使用app1.cnf配置文件来管理 mysql 节

点服务器

5、修改app1.cnf配置文件

2.6 第一次配置需要在Master节点上手动开启虚拟IP

2.7 在manager节点上测试ssh

2.8 在manager节点上测试mysql主从连接

2.9 在manager节点上启动MHA

2.10 查看MHA状态

2.11 查看MHA日志

2.12 查看master VIP

2.13 MHA故障模拟

1、关闭master节点的Mysql,正常自动切换一次后,MHA进程会退出。HMA会自动修改app1.cnf文件内容,将宕机的 master 节点删除。查看slave1是否接管VIP

2.14 故障恢复

1、master节点开启mysql服务

2、在slave1节点上查看

3、在原主服务器上执行同步操作

4、在 manager节点上修改配置文件app1.cnf(再把这个记录添加进去,因为它检测掉失

效时候会自动消失)
5、manager节点上启动MHA

三、总结

  1. 环境准备:基于CentOS 7.6搭建一主两从(10.8.0.110为主,10.8.0.100/102为从)架构,并配置MySQL主从复制,将从库设为只读。

  2. 组件安装:在所有节点安装MHA依赖环境,并分别在Master/Slave节点安装node组件,在Manager节点安装manager组件。

  3. 核心配置:配置各节点间的SSH无密码认证,复制并修改MHA配置文件app1.cnf,手动开启虚拟IP。

  4. 启动与测试:通过masterha_check_ssh检查连通性,随后在Manager节点后台启动MHA服务。

返回列表