博客 MySQL MHA高可用配置实战与主从复制故障切换方案

MySQL MHA高可用配置实战与主从复制故障切换方案

   数栈君   发表于 2026-02-12 17:44  43  0

MySQL MHA 高可用配置实战与主从复制故障切换方案

在现代企业中,数据库的高可用性和稳定性是业务连续性的重要保障。MySQL MHA(Master High Availability)作为一款广泛使用的数据库高可用性解决方案,能够有效应对主数据库故障,确保业务不中断。本文将详细介绍 MySQL MHA 的配置实战、主从复制的故障切换方案,并结合实际案例为企业提供参考。


什么是 MySQL MHA?

MySQL MHA 是一个用于 MySQL 数据库高可用性管理的工具,主要功能包括:

  1. 自动故障检测:实时监控主数据库的状态,发现故障后立即触发切换。
  2. 主从复制管理:通过半同步复制或异步复制实现主从数据同步。
  3. 自动故障切换:在主数据库故障时,自动将从数据库提升为主库,确保服务不中断。
  4. VIP 地址管理:通过浮动 IP 地址实现应用透明的故障切换。

MHA 的核心组件包括:

  • MHA Manager:负责监控数据库集群的状态,并在故障发生时触发切换。
  • MHA Node:安装在每个数据库节点上的代理程序,用于执行复制和切换操作。

为什么选择 MySQL MHA?

在数据中台、数字孪生和数字可视化等场景中,数据库的高可用性至关重要。MySQL MHA 的优势包括:

  1. 高可用性:通过自动故障切换确保业务连续性。
  2. 低延迟:半同步复制模式下,主从数据同步延迟低。
  3. 易用性:通过简单配置即可实现高可用性。
  4. 兼容性:支持多种 MySQL 版本和复制模式。

对于企业而言,选择 MySQL MHA 可以显著降低数据库故障带来的风险,提升系统的可靠性和稳定性。


MySQL MHA 高可用配置实战

1. 环境准备

在配置 MySQL MHA 之前,需要准备好以下环境:

  • 操作系统:Linux(推荐 CentOS 7+ 或 Ubuntu 18.04+)
  • MySQL 版本:MySQL 5.7+(推荐使用半同步复制)
  • 网络环境:确保数据库节点之间网络连通,建议使用内网。
  • 存储:使用高性能存储设备,确保主从复制性能。

2. 安装与配置

(1) 安装 MHA Manager 和 Node

在 MHA Manager 和每个数据库节点上安装 MHA:

# 安装依赖sudo yum install -y perl-DBI perl-DBD-Mysql perl-mysql# 下载 MHAwget https://github.com/yoshinagae/mha4mysql-manager/releases/download/v0.5.2/mha4mysql-manager-0.5.2.tar.gz# 解压并安装tar zxvf mha4mysql-manager-0.5.2.tar.gzcd mha4mysql-manager-0.5.2sudo ./install.sh

(2) 配置 SSH 互信

为了实现无密码登录,需要配置 SSH 互信:

# 在 MHA Manager 上生成密钥ssh-keygen -t rsa -P ""# 将公钥分发到所有数据库节点for node in master slave1 slave2; do    ssh $node "mkdir -p ~/.ssh && chmod 700 ~/.ssh"    scp ~/.ssh/id_rsa.pub $node:~/.ssh/authorized_keys    ssh $node "chmod 600 ~/.ssh/authorized_keys"done

(3) 配置 MHA Manager

编辑 MHA Manager 的配置文件 /etc/mha/mha_manager.conf

[server default]  manager_workdir=/etc/mha  master_binlog_dir=/var/lib/mysql  master_ip=192.168.1.100  replication_user=repl  replication_password=replpass[app1]  description="App1 Database Cluster"  master_host=192.168.1.100  master_port=3306  master_user=repl  master_password=replpass  slave_hosts=192.168.1.101,192.168.1.102

(4) 配置 VIP 地址

在 MHA Manager 上配置浮动 IP 地址:

# 配置 VIP 地址sudo ip addr add 192.168.1.100/24 dev eth0sudo ip link set eth0 promisc onsudo arping -w 30 -D 192.168.1.100

3. 主从复制配置

(1) 配置主数据库

在主数据库上启用二进制日志,并配置用户权限:

# 启用二进制日志sudo vi /etc/my.cnf# 添加以下内容log_bin = mysql-binbinlog_do_db = your_database# 创建复制用户mysql -u root -pGRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'replpass';FLUSH PRIVILEGES;

(2) 配置从数据库

在从数据库上配置主从复制:

# 复制主数据库的二进制日志scp master:/var/lib/mysql/mysql-bin.* /var/lib/mysql/# 配置从数据库mysql -u root -pCHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repl', MASTER_PASSWORD='replpass';START SLAVE;

4. 测试故障切换

在生产环境中,建议进行以下测试:

  1. 模拟主数据库故障:停止主数据库服务,观察 MHA 是否自动切换到从数据库。
  2. 验证 VIP 地址转移:确保应用通过 VIP 地址访问数据库,切换后服务不中断。
  3. 恢复主数据库:重新启动主数据库,验证 MHA 是否自动将从数据库还原为从库。

MySQL 主从复制故障切换方案

1. 故障检测

MHA 通过以下方式检测主数据库故障:

  1. 心跳检测:通过 TCP 连接检测主数据库是否存活。
  2. 复制延迟检测:监控从数据库的复制延迟,判断主数据库是否故障。

2. 自动故障切换

当主数据库故障时,MHA 会执行以下步骤:

  1. 停止从数据库的复制:防止数据不一致。
  2. 提升从数据库为主库:将从数据库提升为主库,并接管 VIP 地址。
  3. 通知应用程序:通过 API 或邮件通知管理员。

3. 故障切换验证

故障切换后,需要验证以下内容:

  1. 数据一致性:检查主从数据库的数据是否一致。
  2. 服务可用性:确保应用程序通过 VIP 地址正常访问数据库。
  3. 日志检查:查看 MHA 的日志文件,确认切换过程无误。

MySQL MHA 监控与优化

1. 监控工具

为了更好地监控 MySQL MHA 的运行状态,可以使用以下工具:

  • Percona Monitoring and Management (PMM):提供全面的数据库监控和分析功能。
  • Prometheus + Grafana:通过自定义监控指标实现可视化监控。

2. 性能优化

为了提升 MySQL MHA 的性能,可以进行以下优化:

  1. 调整复制模式:根据业务需求选择半同步复制或异步复制。
  2. 优化存储性能:使用高性能存储设备,确保主从复制性能。
  3. 配置合适的 VIP 地址:确保 VIP 地址在网络中路由正常。

总结

MySQL MHA 是一款高效可靠的数据库高可用性解决方案,能够有效应对主数据库故障,确保业务连续性。通过合理的配置和故障切换方案,企业可以显著提升数据库的稳定性和可靠性。对于数据中台、数字孪生和数字可视化等场景,MySQL MHA 的高可用性尤为重要。

如果您希望进一步了解 MySQL MHA 或其他数据库解决方案,可以申请试用我们的服务:申请试用。我们的技术支持团队将竭诚为您服务,帮助您实现更高效的数据库管理。


通过以上方案,企业可以更好地应对数据库故障,确保业务的稳定运行。希望本文对您有所帮助!

申请试用&下载资料
点击袋鼠云官网申请免费试用:https://www.dtstack.com/?src=bbs
点击袋鼠云资料中心免费下载干货资料:https://www.dtstack.com/resources/?src=bbs
《数据资产管理白皮书》下载地址:https://www.dtstack.com/resources/1073/?src=bbs
《行业指标体系白皮书》下载地址:https://www.dtstack.com/resources/1057/?src=bbs
《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001/?src=bbs
《数栈V6.0产品白皮书》下载地址:https://www.dtstack.com/resources/1004/?src=bbs

免责声明
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,袋鼠云不对内容的真实、准确或完整作任何形式的承诺。如有其他问题,您可以通过联系400-002-1024进行反馈,袋鼠云收到您的反馈后将及时答复和处理。
0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料