本文共 2274 字,大约阅读时间需要 7 分钟。
此文介绍了MySQL高可用架构(MHA)的部署与故障切换方法,通过实际实验验证MHA在故障切换中的高效性与数据一致性。
MHA(MySQL High Availability)是一种开源工具,专为MySQL数据库设计,支持自动故障切换。其核心功能包括:
MHA通过Manager节点和Node节点组成,Manager节点负责接收外部信号并监控数据节点状态,Node节点则是实际执行增益的工作单位。
对于3个数据节点(server1、server2、server3)及Manager节点(server4),执行以下安装命令:
yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpmyum install -y mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
创建MHA软件目录及配置文件:
mkdir /etc/masterhamkdir /root/MHA-7/mha4mysql-manager-0.58/samples/conf
编辑配置文件 /etc/masterha/app1.cnf:
[server default]user=rootpassword=westosssh_user=rootmaster_binlog_dir=/data/mysqlremote_workdir=/tmpsecondary_check_script=masterha_secondary_check -s 172.25.12.1 -s 172.25.12.2ping_interval=3master_ip_failover_script=/script/masterha/master_ip_failovershutdown_script=/script/masterha/power_managerreport_script=/script/masterha/send_reportmaster_ip_online_change_script=/script/masterha/master_ip_online_changemanager_workdir=/etc/masterha/app1manager_log=/etc/masterha/app1/manager.logrepl_user=marryrepl_password=westos[server1]hostname=172.25.12.1[server2]hostname=172.25.12.2candidate_master=1[server3]hostname=172.25.12.3no_master=1
为故障切换脚本赋予执行权限:
chmod +x master_ip_failoverchmod +x master_ip_online_change
在管理节点启动MHA:
masterha_manager --conf=/etc/masterha/app1.cnf &
以下操作流程旨在手动切换主库:
rm -rf app1.failover.complete
masterha_master_switch --master_state=dead --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=172.25.12.2 --new_master_port=3306
切换后,需启动新主库的复制:
CHANGE MASTER TO MASTER_HOST='172.25.12.1', MASTER_PORT=3306, MASTER_USER='marry', MASTER_PASSWORD='westos'start slave;
chmod +x master_ip_failoverchmod +x master_ip_online_change
vim master_ip_failover
./master_ip_failover --command=start --orig_master_host=server1 --orig_master_ip=172.25.12.1 --orig_master_port=3306 --new_master_host=server2 --new_master_ip=172.25.12.2 --new_master_port=3306
通过实验验证,MHA能够在故障发生时快速切换主库,确保服务持续运行。MHA通过半同步复制及二进制日志机制,有效降低数据丢失风险,最大限度保障数据库一致性。在自动切换过程中,VIP地址自动迁移,最终VIP记录在新的主库,确保业务连续性。
本实验验证了MHA在高可用架构中的有效性,为 MySQL 集群的高可用部署提供了可靠的解决方案。
转载地址:http://jlknz.baihongyu.com/