在现代企业中,数据是核心资产,而 MySQL 作为最流行的开源关系型数据库之一,广泛应用于数据中台、数字孪生和数字可视化等场景。为了确保 MySQL 数据库的高可用性和稳定性,MySQL MHA(Master High Availability)集群成为企业的重要选择。本文将详细介绍 MySQL MHA 高可用集群的搭建过程,并提供故障恢复方案,帮助企业实现高效的数据管理和业务连续性。
MySQL MHA 是一个用于 MySQL 高可用性管理的工具,支持自动故障检测和主从切换,确保数据库集群在主节点故障时能够快速恢复。MHA 的核心组件包括:
MHA 支持半同步复制和异步复制,适用于对数据一致性要求较高的场景。对于数据中台和数字孪生应用,MHA 能够确保数据的实时性和可靠性。
在开始搭建之前,需要确保以下环境准备到位:
在 MHA Manager 节点上安装 MHA:
# 安装依赖sudo yum install -y perl-DBI perl-DBD-MySQL perl-Net-SSH2 perl-Net-SSLeay# 下载 MHA Managerwget https://github.com/yoshinagae/mha4mysql-manager/releases/download/v0.58.000/mha4mysql-manager-0.58.000.tar.gz# 解压并安装tar zxvf mha4mysql-manager-0.58.000.tar.gzcd mha4mysql-manager-0.58.000sudo ./install.sh编辑配置文件 /etc/mha/mha_manager.conf,添加以下内容:
[server default]user=rootpassword=your_passwordssh_user=rootssh_password=your_ssh_password[my_cluster]description="MySQL MHA Cluster"candidate_master=1master_priority=1master_host=192.168.1.100master_port=3306master_user=rootmaster_password=your_passwordmaster_binlog_prefix=/var/lib/mysql/mysql-binmaster_binlog_name=mysql-bin.log[secondary]host1=192.168.1.101host2=192.168.1.102在每个 MySQL 节点上安装 MHA Node:
# 安装依赖sudo yum install -y perl-DBI perl-DBD-MySQL perl-Net-SSH2 perl-Net-SSLeay# 下载 MHA Nodewget https://github.com/yoshinagae/mha4mysql-node/releases/download/v0.58.000/mha4mysql-node-0.58.000.tar.gz# 解压并安装tar zxvf mha4mysql-node-0.58.000.tar.gzcd mha4mysql-node-0.58.000sudo ./install.sh编辑配置文件 /etc/mha/mha_node.conf,添加以下内容:
[server default]user=rootpassword=your_passwordssh_user=rootssh_password=your_ssh_password[my_cluster]description="MySQL MHA Cluster"master_host=192.168.1.100master_port=3306master_user=rootmaster_password=your_password启动 MHA Manager 和 MHA Node 服务:
sudo systemctl start mha_managersudo systemctl enable mha_managersudo systemctl start mha_nodesudo systemctl enable mha_node在主节点上启用二进制日志:
# 修改 MySQL 配置文件sudo vi /etc/my.cnf添加以下内容:
[mysqld]log_bin = /var/lib/mysql/mysql-binbinlog_format = ROWSserver_id = 1重启 MySQL 服务:
sudo systemctl restart mysqld在从节点上配置主从复制:
# 执行以下命令CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='your_password';START SLAVE;检查从节点状态:
SHOW SLAVE STATUS\G确保 Slave_IO_Running 和 Slave_SQL_Running 均为 YES。
MHA Manager 会定期检查主节点的状态,如果检测到主节点故障,会自动触发故障转移。
使用 Percona Monitoring and Management 或 Prometheus 监控 MySQL 和 MHA 的状态。
通过 Nagios 或 Zabbix 设置阈值告警,及时发现集群异常。
如果自动故障转移失败,可以手动执行以下步骤:
停止 MHA 服务:
sudo systemctl stop mha_managersudo systemctl stop mha_node执行故障转移:
sudo /usr/local/mha/bin/mha_manager --command=change_master --conf=/etc/mha/mha_manager.conf --cluster=my_cluster启动 MHA 服务:
sudo systemctl start mha_managersudo systemctl start mha_nodeMySQL MHA 高可用集群为企业提供了可靠的数据库解决方案,适用于数据中台、数字孪生和数字可视化等场景。通过合理的配置和监控,企业可以最大限度地减少故障停机时间,保障业务连续性。
申请试用 更多关于 MySQL MHA 的解决方案,欢迎访问我们的官方网站。
申请试用&下载资料