MHA高可用与故障单点切换

目录

一、MHA简介

二、MHA的组成

三、MHA的特点

四、MHA的工作原理

五、常用工具包

六、MHA实验

1. 准备工作

 2. 配置MHA

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

在 manager 节点上配置 MHA

在 Master 节点上手动开启虚拟IP,在manager 节点上测试 ssh

manager 节点上测试 mysql 主从连接

在 manager 节点上启动 MHA

 3. 故障模拟


一、MHA简介

是一套优秀的MySQL故障切换和主从复制的高可用软件

在MySQL故障切换的过程中,MHA能做到0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能够最大程度上保证数据库的一致性,以达到真正意义上的高可用

MHA由perl语言编写,该工具仅仅使用于MySQLReplication环境,目的在于维持Master主库的高可用性

MHA是基于标准的MySQL主从复制(异步/半同步)

MHA manager 可以单独部署在一台服务器上,可以部署在一台slave上面

主从复制架构:主从复制(一主多从);MHA架构(多主多从);MMM架构(3主多从)

二、MHA的组成

MHA由两部分组成管理节点(MHA manager)和数据节点(MHA Node)两部分组成

MHA Node(数据节点)

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

MHA Manager(管理节点)

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

MHA Manager 会定时探测集群中的 master 节点。当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master, 然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。

三、MHA的特点

自动故障切换过程中,MHA总会试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失

使用MySQL5.5的半同步复制,可以大大降低数据丢失的风险。MHA可以与半同步复制结合起来,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性,有时候可故意设置从节点慢于主节点,当发生意外删除数据库倒是数据丢失时可从从节点二进制日志中恢复。

MHA :为了解决的了是故障切换、数据尽可能的保存,以及所有节点日志的一致性

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

四、MHA的工作原理

工作原理:

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

五、常用工具包

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信息

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

save_binary_logs                保存和复制master的二进制日志

apply_diff_relay_logs           识别差异的中继日志事件并将其差异的事件应用于其他的slave

filter_mysqlbinlog              去除不必要的ROLLBACK事件(MHA已不再使用这个工具)

purge_relay_logs                清除中继日志(不会阻塞SQL线程)

六、MHA实验

实验环境

master:192.168.174.10    MHA node组件

slave1:192.168.174.20      MHA node组件

slave2:192.168.174.30    MHA node组件

MHA:192.168.174.40     MHA manange组件,MHAnode组件

1. 准备工作

配置一主两从服务器

master

slave1

slave2

master、slave1、slave2分别做两个软链接 第一个是mysql命令

第二个mysqlbinlog是节点恢复

所有数据库授权myslave和 mha用户

 从库开启只读模式

 

 查看master状态

 slave1、slave2同步master

 查看从服务状态

 2. 配置MHA

编译安装组件

 

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

 

在 manager 节点上配置 MHA

 修改master_ip_failover脚本配置

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

在 Master 节点上手动开启虚拟IP,在manager 节点上测试 ssh

manager 节点上测试 mysql 主从连接

在 manager 节点上启动 MHA

 查看MHA状态

 3. 故障模拟

关闭主master

在 manager 节点上监控观察日志记录

猜你喜欢

转载自blog.csdn.net/Guo_youyou/article/details/131916072