在现代企业中,数据中台、数字孪生和数字可视化等技术的应用越来越广泛,而这些技术的核心离不开高效、稳定的数据库支持。MySQL 作为全球最受欢迎的开源数据库之一,其高可用集群的搭建与故障恢复技术是企业确保业务连续性的重要保障。本文将详细介绍 MySQL MHA(Master High Availability)高可用集群的搭建过程、故障恢复技术以及相关的优化方法。
MySQL MHA 是一个用于 MySQL 高可用集群的工具集合,主要用于实现主从复制(Master-Slave)架构下的故障自动切换。其核心功能包括:
对于数据中台和数字可视化场景,MySQL MHA 的高可用性能够确保数据源的稳定性,从而为上层应用提供可靠的数据支持。
mha_manager 和 mha_node)。启用二进制日志:在 my.cnf 中添加或修改以下配置:
log_bin = mysql-binbinlog_format = ROWSserver_id = 1并重启 MySQL 服务。
创建复制用户:在主库上创建一个用于主从复制的用户:
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'password';FLUSH PRIVILEGES;配置主库信息:在从库的 my.cnf 中添加:
server_id = 2master_host = 主库 IPmaster_user = repl_usermaster_password = password启动从库复制:启动 MySQL 服务后,执行以下命令:
CHANGE MASTER TO MASTER_HOST='主库 IP', MASTER_USER='repl_user', MASTER_PASSWORD='password';START SLAVE;验证复制状态:执行 SHOW SLAVE STATUS\G,确认 Slave_IO_Running 和 Slave_SQL_Running 均为 YES。
CREATE DATABASE test_db;USE test_db;CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, data VARCHAR(255));INSERT INTO test_table VALUES (1, 'Test Data');USE test_db;SELECT * FROM test_table;在所有节点上安装 MHA 软件:
# 下载 MHA 安装包wget https://github.com/yoshinari-natsume/mha4mysql-manager/archive/master.zip# 解压并安装unzip master.zipcd mha4mysql-manager-masterruby setup.rb install在管理节点上配置 manager.conf 文件:
[server default]ssh_user = mysql_userssh_password = mysql_passwordping_threshold = 0ping_interval = 1在主库和从库上配置 node.conf 文件:
[server 1]hostname = 主库 IPssh_user = mysql_userssh_password = mysql_password[server 2]hostname = 从库 IPssh_user = mysql_userssh_password = mysql_password在管理节点上启动 MHA 服务:
# 启动 MHA 管理器mha_manager --start --conf=/etc/mha/manager.conf# 启动 MHA 节点mha_node --start --conf=/etc/mha/node.conf模拟主库故障:在管理节点上执行:
mha_manager --start --conf=/etc/mha/manager.conf --command=stop这将触发故障切换流程。
验证故障切换:
恢复主库:故障排除后,执行:
mha_manager --start --conf=/etc/mha/manager.conf --command=startheartbeat 或 keepalived)检测主库状态。mha_manager --start --conf=/etc/mha/manager.conf --command=switch --master_host=故障主库IPCHANGE MASTER TO 重新同步数据。keepalived 或其他心跳检测工具,确保节点之间的通信正常。mha_manager 提供基本的监控功能。SET GLOBAL rpl_semi_sync_master_enabled = 1;SET GLOBAL rpl_semi_sync_slave_enabled = 1;slave_parallel_workers 提高从库性能。MySQL MHA 高可用集群是企业保障数据库稳定性的重要手段。通过合理的搭建和配置,企业可以显著提升数据库的可用性和可靠性。同时,定期的故障演练和性能优化是确保集群稳定运行的关键。
通过以上步骤和技术,企业可以更好地应对数据中台和数字可视化场景下的数据库挑战,确保业务的高效运行。
申请试用&下载资料