在现代企业中,数据是核心资产,而数据库作为数据存储和管理的核心系统,其高可用性和稳定性至关重要。MySQL 作为全球广泛使用的开源数据库,其高可用集群方案 MySQL Master High Availability (MHA) 成为了企业保障数据库稳定运行的重要选择。本文将从零开始,详细讲解 MySQL MHA 高可用集群的搭建与优化实战,帮助企业构建高效、可靠的数据库集群。
MySQL MHA(Master High Availability) 是一个用于 MySQL 数据库高可用性管理的工具,旨在实现主从复制(Master-Slave)架构下的故障自动转移。其核心功能包括:
对于数据中台、数字孪生和数字可视化等场景,MySQL MHA 能够提供稳定的数据支撑,确保业务连续性。
搭建 MySQL MHA 集群需要以下环境:
在两台服务器上安装 MySQL:
# 下载并安装 MySQLyum install mysql-community-server mysql-community-tools -y编辑主库配置文件:
vim /etc/my.cnf添加以下配置:
[mysqld]server-id = 1log_bin = mysql-bin.logbinlog-do-db = your_database_name重启 MySQL 服务:
systemctl restart mysqld编辑从库配置文件:
vim /etc/my.cnf添加以下配置:
[mysqld]server-id = 2重启 MySQL 服务:
systemctl restart mysqld在主库上创建复制用户:
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'从库IP' IDENTIFIED BY 'password';FLUSH PRIVILEGES;在从库上执行复制:
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.log', MASTER_LOG_POS=0;START SLAVE;验证复制状态:
SHOW SLAVE STATUS\G确保 Slave_IO_Running 和 Slave_SQL_Running 均为 YES。
下载并安装 MHA:
# 下载 MHAwget https://github.com/yoshinagae/mha4mysql-manager/releases/download/v0.58.000/mha4mysql-manager-0.58.000.tar.gztar -zxvf mha4mysql-manager-0.58.000.tar.gzcd mha4mysql-manager-0.58.000make install创建 MHA 配置文件:
vim /etc/mha/app1.cnf添加以下内容:
[application-master]description = "MySQL MHA Cluster"candidate_master = 1master = 主库IPmaster_port = 3306master_user = mha_replmaster_password = mha_passwordssh_user = rootssh_password = root_password重启 MHA 服务:
service mha4mysql-manager restart模拟主库故障:
# 在主库上停止 MySQL 服务systemctl stop mysqldMHA 自动检测到故障并执行切换:
# 在管理节点上执行切换sudo /usr/local/mha4mysql/bin/mha_check.sh --app1.cnfsudo /usr/local/mha4mysql/bin/mha_failover --app1.cnf验证从库是否已成为主库:
SHOW VARIABLES LIKE 'server_id';根据业务需求调整以下参数:
[mysqld]innodb_buffer_pool_size = 1Gquery_cache_type = 1sort_buffer_size = 1M确保主从复制使用半同步模式:
SET GLOBAL rpl_semi_sync_master_enabled = 1;SET GLOBAL rpl_semi_sync_slave_enabled = 1;为常用查询字段添加索引,减少查询时间。
推荐使用 Zabbix 或 Prometheus 监控 MySQL 集群状态。
设置以下告警:
将写操作集中到主库,读操作分发到从库。
使用 HAProxy 或 Nginx 实现应用层负载均衡。
在高并发场景下,可以采用多活双写架构,提升写入性能。
在异地部署容灾集群,确保灾难发生时快速恢复。
MySQL MHA 高可用集群是企业保障数据库稳定运行的重要手段。通过本文的实战分享,您可以从零开始搭建并优化 MySQL MHA 集群,确保数据中台、数字孪生和数字可视化等场景的高效运行。
如果您对 MySQL MHA 高可用配置感兴趣,或者需要进一步的技术支持,欢迎申请试用:申请试用。
申请试用&下载资料