数据库之MHA高可用集群部署及故障切换

目录

  • 一、MHA概念
    • 1、MHA 的组成
    • 2、MHA 的特点
  • 二、搭建MySQL+MHA
    • 1、修改mysql节点的主机名
    • 2、修改三台MySQL服务器的主配置文件/etc/my.cnf
    • 3、配置MySQL一主两从
    • 4、安装 MHA 软件
    • 5、在所有服务器上配置无密码认证
    • 6、在 manager 节点上配置 MHA
    • 7、第一次配置需要在 Master 节点上手动开启虚拟IP
    • 8、在 manager 节点上测试 ssh 无密码认证
    • 9、在 manager 节点上测试 mysql 主从连接情况
    • 10、在 manager 节点上启动 MHA
    • 11、查看相关状态
  • 三、故障模拟
    • 1、故障模拟
    • 2、故障修复步骤

一、MHA概念

  • MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。
  • MHA 的出现就是解决MySQL 单点的问题。
  • MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。
  • MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

1、MHA 的组成

  • MHA Node(数据节点)
    • MHA Node 运行在每台 MySQL 服务器上。
  • MHA Manager(管理节点)
    • MHA Manager 可以单独部署在一台独立的机器上,管理多个 master-slave 集群;也可以部署在一台 slave 节点上。
    • MHA Manager 会定时探测集群中的 master 节点。当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master, 然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。

2、MHA 的特点

  • 自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失
  • 使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性
  • 目前MHA支持一主多从架构,最少三台服务,即一主两从

二、搭建MySQL+MHA

数据库之MHA高可用集群部署及故障切换_第1张图片

1、修改mysql节点的主机名

数据库之MHA高可用集群部署及故障切换_第2张图片
数据库之MHA高可用集群部署及故障切换_第3张图片
数据库之MHA高可用集群部署及故障切换_第4张图片

2、修改三台MySQL服务器的主配置文件/etc/my.cnf

mysql1(192.168.163.129)
数据库之MHA高可用集群部署及故障切换_第5张图片
数据库之MHA高可用集群部署及故障切换_第6张图片
mysql2(192.168.163.130)
mysql3(192.168.163.131)
数据库之MHA高可用集群部署及故障切换_第7张图片
数据库之MHA高可用集群部署及故障切换_第8张图片

3、配置MySQL一主两从

(1)所有MySQL服务器进行MySQL授权
数据库之MHA高可用集群部署及故障切换_第9张图片
(2)在Master节点查看二进制文件和同步点
数据库之MHA高可用集群部署及故障切换_第10张图片
(3)在 Slave1、Slave2 节点执行同步操作
数据库之MHA高可用集群部署及故障切换_第11张图片
(4)Slave1、Slave2 节点设置为只读模式
数据库之MHA高可用集群部署及故障切换_第12张图片
(5)主从复制验证
数据库之MHA高可用集群部署及故障切换_第13张图片
查询库验证
数据库之MHA高可用集群部署及故障切换_第14张图片

4、安装 MHA 软件

(1)所有服务器上都安装 MHA 依赖的环境

  • 首先安装 epel 源,需要在线源安装
  • 再在所有服务器上安装 node 组件
    数据库之MHA高可用集群部署及故障切换_第15张图片

数据库之MHA高可用集群部署及故障切换_第16张图片
数据库之MHA高可用集群部署及故障切换_第17张图片
(2)安装MHA node软件包
cd /opt
tar zxvf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57
perl Makefile.PL
make && make install

(3)在 MHA manager 节点上安装 manager 组件
cd /opt
tar zxvf mha4mysql-manager-0.57.tar.gz
cd mha4mysql-manager-0.57
perl Makefile.PL
make && make install

  • manager 组件安装后在/usr/local/bin 下面会生成几个工具
    数据库之MHA高可用集群部署及故障切换_第18张图片

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

数据库之MHA高可用集群部署及故障切换_第19张图片
数据库之MHA高可用集群部署及故障切换_第20张图片

  • 三台mysql服务器一样,太占篇幅,就不贴图了。

6、在 manager 节点上配置 MHA

(1)在 manager 节点上复制相关脚本到/usr/local/bin 目录
数据库之MHA高可用集群部署及故障切换_第21张图片
(2)复制上述的自动切换时 VIP 管理的脚本到 /usr/local/bin 目录,这里使用master_ip_failover脚本来管理 VIP 和故障切换
数据库之MHA高可用集群部署及故障切换_第22张图片
数据库之MHA高可用集群部署及故障切换_第23张图片
(3)创建 MHA 软件目录并拷贝配置文件,这里使用app1.cnf配置文件来管理 mysql 节点服务器

数据库之MHA高可用集群部署及故障切换_第24张图片

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

数据库之MHA高可用集群部署及故障切换_第25张图片

8、在 manager 节点上测试 ssh 无密码认证

数据库之MHA高可用集群部署及故障切换_第26张图片

9、在 manager 节点上测试 mysql 主从连接情况

数据库之MHA高可用集群部署及故障切换_第27张图片

10、在 manager 节点上启动 MHA

在这里插入图片描述

11、查看相关状态

  • 查看 MHA 状态,可以看到当前的 master 是 Mysql1 节点。
    数据库之MHA高可用集群部署及故障切换_第28张图片
  • 查看 MHA 日志,也以看到当前的 master 是 192.168.120.129
    在这里插入图片描述

三、故障模拟

1、故障模拟

(1)在 manager 节点上监控观察日志记录
数据库之MHA高可用集群部署及故障切换_第29张图片
(2)在 Master 节点 Mysql1 上停止mysql服务
数据库之MHA高可用集群部署及故障切换_第30张图片
(3)查看 mysql2 是否接管 VIP
数据库之MHA高可用集群部署及故障切换_第31张图片
数据库之MHA高可用集群部署及故障切换_第32张图片

2、故障修复步骤

(1)修复mysql
在这里插入图片描述
(2)修复主从

  • 在现主库服务器 Mysql2 查看二进制文件和同步点
    数据库之MHA高可用集群部署及故障切换_第33张图片
  • 在原主库服务器 mysql1 执行同步操作
    -数据库之MHA高可用集群部署及故障切换_第34张图片

(3)在 manager 节点上修改配置文件app1.cnf
数据库之MHA高可用集群部署及故障切换_第35张图片
(4)在 manager 节点上启动 MHA
masterha_stop --conf=/etc/masterha/app1.cnf

nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

masterha_check_status --conf=/etc/masterha/app1.cnf

你可能感兴趣的:(数据库,mysql,服务器)