MHA 日常管理

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:     MHA是众多使用MySQL数据库企业高可用的不二选择,它简单易用,功能强大,实现了基于MySQL replication架构的自动主从故障转移。
    MHA是众多使用MySQL数据库企业高可用的不二选择,它简单易用,功能强大,实现了基于MySQL replication架构的自动主从故障转移。本文主要描述MHA的日常相关操作,同时给出了关于MHA的相关连接,供大家参考。


一、MHA的主要脚本(perl)
1.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信息


2.node端
save_binary_logs                保存和复制master的二进制日志
apply_diff_relay_logs           识别差异的中继日志事件并将其差异的事件应用于其他的slave
filter_mysqlbinlog              去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
purge_relay_logs                清除中继日志(不会阻塞SQL线程)


二、日常操作
1.校验ssh等效验证
$ masterha_check_ssh --conf=/etc/masterha/app1.cnf


2.校验mysql复制
$ masterha_check_repl --conf=/etc/masterha/app1.cnf


3.启动mha监控,在master故障时开启自动转移
$ nohup masterha_manager --conf=/etc/masterha/app1.cnf > /tmp/mha_manager.log  < /dev/null 2>&1 &

###当有slave节点宕掉的情况是启动不了的,加上--ignore_fail_on_start即使有节点宕掉也能启动mha
$ nohup masterha_manager --conf=/etc/masterha/app1.cnf  --ignore_fail_on_start > /tmp/mha_manager.log  < /dev/null 2>&1 &


4.检查启动的状态
$ masterha_check_status --conf=/etc/masterha/app1.cnf


5.停止mha
$ masterha_stop  --conf=/etc/masterha/app1.cnf


6.多次failover
MHA在每次failover切换后会在管理目录生成文件app1.failover.complete ,下次在切换的时候如果由于间隔时间太短导致切换不成功,应手动清理掉。
rm -rf /var/log/masterha/app1/app1.failover.complete
或者通过加上参数--ignore_last_failover来忽略


7.手工failover
手工failover场景,适用于在master死掉,而masterha_manager未开启情形,如下,指定--master_state=dead
masterha_master_switch --conf=/etc/masterha/app1.cnf --dead_master_host=192.168.1.6 --master_state=dead --new_master_host=192.168.1.7
--ignore_last_failover


8.手动在线切换,如下,指定--master_state=alive
masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.1.6 --orig_master_is_new_slave

masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.1.6 --orig_master_is_new_slave
--running_updates_limit=10000

--orig_master_is_new_slave
  表明在切换时原master变为新master的slave节点
  
--running_updates_limit=10000
  切换时候选master如果有延迟的话,mha切换不能成功,加上此参数表示延迟在此时间范围内都可切换(单位为s),
  但是切换的时间长短是由recover时relay日志的大小决定

其他注意事项
  手动在线切换mha,切换时需要将在运行的mha停掉后才能切换。
  在备库先执行DDL,一般先stop slave,一般不记录mysql日志,可以通过set SQL_LOG_BIN = 0实现。
  然后进行一次主备切换操作,再在原来的主库上执行DDL。这种方法适用于增减索引,如果是增加字段就需要额外注意。
  可以通过如下命令停止mha:masterha_stop --conf=/etc/masterha/app1.cnf


三、MHA相关参考
  MySQL MHA简介及其优点
  MySQL MHA 典型使用场景
  MHA安装及等效性配置
  MHA 配置文件样本描述
  MySQL MHA配置常见问题
  MHA masterha_check_repl 检测过程
  MHA VIP切换脚本
  MHA 自动故障转移步骤及过程剖析
  MHA 在线切换过程
  MHA 切换的2个异常(masterha_master_switch line 53)
  MHA 手动故障转移

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
存储 关系型数据库 MySQL
使用 MHA 和 HAProxy 部署高可用 MySQL
使用 MHA 和 HAProxy 部署高可用 MySQL
|
7月前
|
安全 关系型数据库 MySQL
MHA高可用配置及故障切换
MHA高可用配置及故障切换
51 0
|
SQL 关系型数据库 MySQL
MySQL高可用之MHA集群(中)
一、MHA概述 1.1 什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。
135 0
|
监控 关系型数据库 MySQL
MySQL高可用之MHA集群(下)
一、MHA概述 1.1 什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。
192 0
|
监控 安全 关系型数据库
|
运维 安全 数据库
【运维】MariaDB_galera_cluster集群
Galera Cluster 基于多主架构
3652 0
【运维】MariaDB_galera_cluster集群
|
关系型数据库 MySQL 网络安全
MHA
MHA原理: (1)一主三从架构,主库挂了,但主库能被从库ssh上去的情况下,MHA从三个从库中选择同步最接近的作为新主,然后新主和s2,s3都ssh到原主上通过binlog补上还没有同步的数据,io_thread读取到binlog位置,传到save_binary_logs,然后回放,达到s1,s2,s3和原主一致。
1067 0
|
关系型数据库 MySQL 测试技术
搭建MHA
安装MySQL 5.7 yum源的配置文件如下 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.
1272 0