一、环境与条件
已存在主从架构环境node
主机名 | IP地址 | 主从角色 | MHA角色 |
---|---|---|---|
leo1 | 192.168.3.2 | Master | MHA-node |
leo2 | 192.168.3.3 | slave | MHA-node |
leo3 | 192.168.3.4 | slave | MHA-node,MHA-manager |
vip | 192.168.3.6 |
主从确保主从状态正常mysql
mysql>show slave status\G; IO与SQL进程为YES
参数更改sql
relay_log_purge = 0 #不自动删除relay log 以便于宕机修复数据 log_bin = /data/log/leo-bin #从库开启binlog 以便于宕机修复数据 expire_logs_days=7 log-slave-updates=1
二、配置SSH
MHA在运行是会经过SSH服务链接到其余节点服务器进行检测或复制数据,所以须要集群内可免密码登录。
在leo1-3内分别执行以下命令:数据库
ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.2 ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.3 ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.4
三、安装MHA Node
对全部mysql节点安装MHA Node 服务器
1)安装perl语言 yum install perl-DBD-MySQL -y ###由于MHA用perl 开发 2)安装MHA Node rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 下载地址 https://code.google.com/archive/p/mysql-master-ha/downloads 3)建立命令软链接方便使用: ls -s /app/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog ls -s /app/mysql/bin/mysql /usr/bin/mysql 4)检查MHA帐户 grant all privileges on *.* to mha@'192.168.3%' identified by 'mha'; select user,host from mysql.user;
四、MHA-Manager
Manager 能够安装在任何一台机器上。架构
1)使用epel源安装perl环境 wget -O /etc/yum.repo.d/epel.repo http://mirrors.aliyum.com/repo/eprl-6.repo 2)安装管理节点以来包 yum intall -u perl-Config-Tiny* epel-release perl-Log-Dispatch* perl-Parallel* per-Time* 3)安装MHA-Node rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 4)安装MHA-Manger rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm
五、配置MHA管理节点app
mkdir -p /etc/mha mkdir -p /var/log/mha/app1 vi /etc/mha/app1.cnf [server default] manager_log=/var/log/mha/app1/manager.log manager_workdir=/var/log/mha/app1.log mater_binlog_dir=/app/mysql/data ##MHA保存主库binlog路径 user=mha ##mysql 数据库受权yonghu password=mha ping_interval=2 ##监控ping包时间间隔 repl_user=rep ##主从复制用户 repl_password=leo123 ssh_user=root repot_script=/usr/local/send_report ##故障发生后触发脚本 secondary_check_script=/usr/local/bin/masterha_secondary_check -s leo3 -s leo2 --user=root --master_host=leo1 --master_ip=192.168.3.2 --master_port=3306 ########manager 联系不上leo1时会经过leo二、leo3 查看leo1的状态 shutdown_script="" [server1] hostname=192.168.3.2 port=3306 [server2] hostname=192.168.3.4 port=3306 candidate_master=1 ##设定此参数后server2 会将优先升为主库 check_repl_delay=0 ##MHA忽律主从复制延迟 [server3] hostname=192.168.3.3 port=3306
六、启动及测试ssh
1)检测ssh免密登录
master_check_ssh -conf=/etc/mha/app1.cnf
2)检测主从复制状态
master_check_repl -conf=/etc/mha/app1.cnf
3)启动MHA
nohup master_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failver < /dev/null > /var/log/mha/app1/manager.log 2>&1 & ##remove_dead_master_conf 在配置文件中删除master信息 ##ignore_last_failver 忽律上一次故障切换
七、配置VIP漂移ide
1)利用keepalived 2)在配置文件中填入如下参数 master_ip_failover_script=/usr/local/bin/master_ip_failover 3)在脚本中加入如下参数 my = $vip= '192.168.3.6'; my $key= 0 my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip"; my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down"; chmod +x /etc/mha/master_ip_failover