在现代企业中,数据中台、数字孪生和数字可视化等技术的应用越来越广泛,而这些技术的核心都离不开一个稳定、高效、高可用的数据库系统。MySQL 作为全球最受欢迎的关系型数据库之一,其高可用性配置是企业确保业务连续性的重要保障。而 MySQL MHA(Master High Availability)正是实现 MySQL 高可用性的重要工具之一。
本文将从 MySQL MHA 的基本概念出发,详细讲解如何在生产环境中搭建 MySQL 集群,并通过实战演示故障转移的过程,帮助企业用户更好地理解和应用 MySQL MHA 高可用配置。
MySQL MHA 是一个用于 MySQL 高可用性管理的工具,主要由两部分组成:MHA Manager 和 MHA Node。
通过 MHA,企业可以实现 MySQL 数据库的自动故障转移,确保在主节点发生故障时,从节点能够快速接管,从而最大限度地减少停机时间,保障业务的连续性。
在搭建 MySQL MHA 集群之前,需要准备好以下环境:
在两台服务器上安装 MySQL,并配置主从复制(Master-Slave Replication)。
在两台服务器上安装 MySQL 依赖:
sudo yum install -y gcc gcc-c++ make cmake libaio libaio-devel perl-DBI perl-DBD-Mysql下载 MySQL 源码包并编译:
wget https://dev.mysql.com/get/MySQL-Community-GA-5.7.37-linux-glibc2.12-x86_64.tar.gztar zxf MySQL-Community-GA-5.7.37-linux-glibc2.12-x86_64.tar.gzcd MySQL-Community-GA-5.7.37-linux-glibc2.12-x86_64cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysqlmakemake install创建 MySQL 用户和数据库:
sudo useradd mysqlsudo chown -R mysql:mysql /usr/local/mysql初始化 MySQL:
/usr/local/mysql/bin/mysqld --initialize --user=mysql设置 MySQL 密码:
/usr/local/mysql/bin/mysql_secure_installation在主节点(Master)上,修改 MySQL 配置文件:
sudo vi /usr/local/mysql/etc/my.cnf添加以下配置:
[mysqld]server-id = 1log-bin = /usr/local/mysql/data/mysql-bin.logbinlog-do-db = your_database_name在从节点(Slave)上,修改 MySQL 配置文件:
sudo vi /usr/local/mysql/etc/my.cnf添加以下配置:
[mysqld]server-id = 2relay-log = /usr/local/mysql/data/relay-log.log重启 MySQL 服务:
sudo systemctl restart mysqld在主节点上,授予从节点复制权限:
mysql -u root -pGRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'从节点IP' IDENTIFIED BY 'password';FLUSH PRIVILEGES;在从节点上,配置从主节点同步:
mysql -u root -pCHANGE MASTER TO MASTER_HOST='主节点IP', MASTER_USER='repl_user', MASTER_PASSWORD='password';START SLAVE;在 MHA Manager 和 MHA Node 上安装 MHA。
安装 Perl 和 MHA 所需的 Perl 模块:
sudo yum install -y perl-CPAN perl-DBI perl-DBD-Mysql安装 MHA Perl 模块:
sudo cpan install Net::SSH2sudo cpan install Bundle::DBD::mysql下载 MHA:
wget https://github.com/yoshinagae/mha4mysql-manager/archive/v0.58.000.tar.gztar zxf v0.58.000.tar.gzcd mha4mysql-manager-0.58.000安装 MHA:
perl Makefile.PLmakemake install在 MHA Manager 上,创建 MHA 配置文件:
sudo vi /etc/mha/app1.cnf添加以下配置:
[app1]description = "MySQL MHA Cluster"candidate_master = 1check_repl = 1master = 主节点IPmaster_port = 3306ssh_user = mysqlremote庠 = 从节点IP在 MHA Node 上,配置 MHA:
sudo vi /etc/mha/app1.cnf添加以下配置:
[app1]description = "MySQL MHA Cluster"candidate_master = 1check_repl = 1master = 主节点IPmaster_port = 3306ssh_user = mysqlremote庠 = 从节点IP在 MHA Manager 上,启动 MHA:
sudo /usr/local/mha/bin/mha_check_status --app1在 MHA Node 上,启动 MHA:
sudo /usr/local/mha/bin/mha_check_status --app1为了验证 MySQL MHA 的高可用性,可以进行故障转移测试。
在 MHA Manager 上,执行以下命令模拟主节点故障:
sudo /usr/local/mha/bin/mha_check_status --app1 --failed在 MHA Manager 上,执行故障转移:
sudo /usr/local/mha/bin/mha_start --app1 --start_secondary检查从节点是否已提升为主节点:
mysql -h 从节点IP -u root -pSHOW MASTER STATUS;在故障转移完成后,可以将原主节点恢复为从节点:
mysql -h 新主节点IP -u root -pCHANGE MASTER TO MASTER_HOST='原主节点IP', MASTER_USER='repl_user', MASTER_PASSWORD='password';START SLAVE;性能优化:
innodb_buffer_pool_size)设置合理。网络优化:
监控与日志:
备份与恢复:
MySQL MHA 是实现 MySQL 高可用性的重要工具,能够有效保障企业数据服务的连续性和稳定性。通过本文的实战演示,读者可以深入了解 MySQL MHA 的配置和故障转移过程,并将其应用于数据中台、数字孪生和数字可视化等场景中。
如果您对 MySQL MHA 或其他数据库高可用性解决方案感兴趣,可以申请试用我们的工具:申请试用。我们的工具可以帮助您更轻松地实现数据库的高可用性管理,提升业务的稳定性。
希望本文对您有所帮助,祝您在 MySQL MHA 的配置和管理中取得成功!
申请试用&下载资料