在现代企业中,数据是核心资产,而数据库作为数据存储和管理的核心系统,其可用性和可靠性至关重要。MySQL MHA(Master High Availability)作为一款广泛使用的高可用性解决方案,能够有效提升数据库集群的容灾能力和故障恢复能力。本文将详细介绍MySQL MHA的配置步骤、故障恢复方案以及其实现原理,帮助企业构建稳定可靠的数据库集群。
MySQL MHA(Master High Availability)是一款基于Galera Cluster的高可用性解决方案,专为MySQL数据库设计。它通过同步多副本(Multi-Autofailover)技术,实现主从数据库的实时同步,确保在主库故障时,从库能够快速接管,从而实现服务不中断。
# 添加Percona YUM仓库sudo yum install https://repo.percona.com/yum/percona-release-latest-el8.noarch.rpm# 安装Percona MySQLsudo yum install percona-mysql-server编辑配置文件/etc/my.cnf,添加以下内容:
[mysqld]wsrep_cluster_name = "my_cluster"wsrep_provider = galerawsrep_cluster_address = "gcomm://node1,node2,node3"wsrep_sst_method = rsyncsudo systemctl start mysqldsudo systemctl enable mysqld在主库上执行以下命令:
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'password';FLUSH PRIVILEGES;在从库上执行以下命令:
CHANGE MASTER TOMASTER_HOST='主库IP',MASTER_USER='repl_user',MASTER_PASSWORD='password';START SLAVE;# 添加MHA YUM仓库sudo yum install https://mha4mysql.github.io/yum/repo/mha4mysql.repo# 安装MHA Managersudo yum install mha4mysql-manager编辑配置文件/etc/mha4mysql.conf.cnf,添加以下内容:
[server default]user=rootpassword=secretssh_user=rootssh_password=secret[my_cluster]nodes=node1,node2,node3sudo systemctl start mha4mysql_managersudo systemctl enable mha4mysql_managermysql -u root -p -h 127.0.0.1 -P 3306连接到任意节点,执行SHOW STATUS LIKE 'wsrep%';,检查集群状态是否正常。# 手动触发故障恢复sudo /usr/bin/mha4mysql_manager --command=change_master --vip=主库VIP --ssh_user=root --ssh_password=secret --node=从库IP# 停止从库服务sudo systemctl stop mysqld# 重新配置同步CHANGE MASTER TOMASTER_HOST='主库IP',MASTER_USER='repl_user',MASTER_PASSWORD='password';START SLAVE;# 手动同步数据sudo rsync -avz /var/lib/mysql/ root@从库IP:/var/lib/mysql/MySQL MHA是一款强大的高可用性解决方案,能够有效提升数据库集群的容灾能力和故障恢复能力。通过合理的配置和故障恢复方案,企业可以构建稳定可靠的数据库集群,确保业务的连续性和数据的安全性。
如果您对MySQL MHA感兴趣,或者希望了解更多关于数据中台、数字孪生和数字可视化解决方案,请访问申请试用。
申请试用&下载资料