13.MHA 常用问题

GTID 的注意事项

配置文件示例(/etc/masterha/app1.cnf 或类似路径):

ini 复制代码
[server default]
client_bindir=/usr/local/mysql/bin
manager_log=/masterha/app2/manager.log
manager_workdir=/masterha/app2
master_binlog_dir=/data/mysql/3307/data
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
password=monitor123
ping_interval=1
remote_workdir=/tmp
repl_password=repl123456
repl_user=repl
report_script=/usr/local/bin/send_report
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.79.20 --user=root --master_host=192.168.79.10 --master_ip=192.168.79.10 --master_port=3307
shutdown_script=""
ssh_user=root
user=mha_monitor

[server1]
hostname=192.168.79.10
port=3307

[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.79.20
port=3307

[binlog1]
no_master=1
hostname=192.168.79.10
master_binlog_dir=/data/mysql/3307/data

注:增加binlog1配置,是因为开启gtid复制的情况下,mha切换会跳过最新的slave到主库获取binlog日志补偿的阶段

脑裂预防措施

  1. 半同步复制:配置 MySQL 半同步复制,确保数据至少同步到一个 Slave。
  2. shutdown_script :配置 shutdown_script 脚本,在主库异常时可自动执行关闭或隔离操作。

定期检测集群状态健康

bash 复制代码
masterha_check_repl --conf=/etc/masterha/app1.cnf

该命令用于检查主从复制状态是否正常。


定期检测主从数据一致性

使用 Percona Toolkit 中的 pt-table-checksum 工具进行数据一致性校验。


MHA 的单点问题

MHA Manager 本身可能存在单点故障。建议使用进程管理工具来监控和自动重启 MHA Manager,例如:

  • daemontools
  • systemd
  • supervisor

跳过主从延迟检测

在 MHA 配置文件中设置以下参数可跳过复制延迟检测:

ini 复制代码
check_repl_delay = 0

跳过过滤规则检测

在 MHA 配置文件中设置以下参数可跳过复制过滤规则检测:

ini 复制代码
check_repl_filter = 0
相关推荐
shaoming377640 分钟前
浏览器动作开发:地址栏图标点击事件、弹出页面设计
android·mysql·adb
Riu_Peter5 小时前
【技术】Docker 部署 MySQL
mysql·adb·docker
Irene19916 小时前
SQL示例:外键约束是关系型数据库中用于建立两个表之间链接的一种规则
mysql
zshs0006 小时前
从 Raft 到 MySQL:我是怎么推导出半同步复制原理的
数据库·分布式·mysql
这个DBA有点耶6 小时前
MySQL深分页优化:从LIMIT 1000000,10到毫秒级响应的三种写法
数据库·程序人生·mysql·性能优化·学习方法·dba·改行学it
东风破1377 小时前
DM8搭建同构(dm-dm)及异构数据库(dm-oracle,dm-mysql)的dblink
数据库·mysql·oracle
青云计划7 小时前
Mysql
数据库·mysql
海棠Flower未眠7 小时前
Spring Boot 3 + JPA多模块系统对MySQL和DORIS进行多数据源集成实战(荣耀典藏版)
spring boot·后端·mysql
ClouGence7 小时前
我们做了个疯狂的决定,把 CloudDM 全部开源了
数据库·后端·mysql
努力努力再努力wz8 小时前
【Qt入门系列】深入理解信号与槽:从事件响应到自定义信号机制
c语言·开发语言·数据结构·数据库·c++·qt·mysql