MHA高可用

MHA搭建:

一、软链
ln -s /application/mysql/bin/mysql /usr/bin/mysql
ln -s /application/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog

二、配置互信:
master:
rm -rf /root/.ssh
ssh-keygen
cd /root/.ssh
mv id_rsa.pub authorized_keys

scp -r /root/.ssh root@slave1:/root
scp -r /root/.ssh root@slave2:/root

各节点验证(master、slave1、slave2):
ssh master date
ssh slave1 date
ssh slave2 date

三、安装node软件包:
yum install perl-DBD-MySQL -y
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

四、master-建mha用户
grant all privileges on . to mha@‘172.17.0.%’ identified by ‘mha’;

五、slave2-安装manager
yum install perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm

六、slave2-配置文件
创建配置文件目录:
mkdir -p /etc/mha
创建日志目录:
mkdir -p /var/log/mha/app1
配置文件/etc/mha/app1.cnf:
[server default]
manager_log=/var/log/mha/app1/manager
manager_workdir=/var/log/mha/app1
master_binlog_dir=/data/binlog
user=mha
password=mha
ping_interval=2
repl_user=replication
repl_password=replication
ssh_user=root

[server1]
hostname=172.17.0.8
port=3306

[server2]
hostname=172.17.0.7
port=3306

[server3]
hostname=172.17.0.9
port=3306

七、slave2-检查互信:
masterha_check_ssh --conf=/etc/mha/app1.cnf
masterha_check_repl --conf=/etc/mha/app1.cnf

八、开启mha:
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &

九、检查状态:
masterha_check_status --conf=/etc/mha/app1.cnf

MHA架构:

一、节点(至少一主两从)
manager:slave2
ndoe:master、slave1、slave2

二、软件构成
Manager:
masterha_manager 启动MHA
masterha_stop 停止MHA
masterha_check_ssh 检查MHA的SSH配置情况
masterha_check_repl 检查Mysql复制情况
masterha_master_monitor 检查master是否宕机
masterha_check_status 检查MHA当前运行状态
masterha_master_switch 控制故障转移(自动、手动)
masterha_conf_host 添加、删除配置的server信息

Node:
save_binary_logs 保存、复制master的binlog
apply_diff_relay_logs
purge_relay_logs 清除中继日志

三、failover
故障转移:主库宕机–>业务恢复 的处理过程

failover思路:
(1)监控到主库宕机
mysqladmin ping
(2)选主
gtid最接近的
(3)从库数据补偿
(4)解除从库身份
(5)其余从库和主库构建主从
(6)应用透明-vip漂移
(7)故障节点自愈
(8)故障提醒

MHA如何实现failover:
启动 —> 故障 —> 转移 —> 业务恢复
(1)masterha_check_ssh检查ssh互信、masterha_check_repl检查主从状态
(2)masterha_manager启动MHA功能
(3)manager通过masterha_master_monitor脚本,每隔ping_interval秒探测心跳,3次无心跳,主库宕机
(4)选主过程:
1、读取配置文件强制选主的参数
candidate_master=1
check_repl_delay=0
2、自动判断所有从库的日志量,选最接近主库的从库
3、按照配置文件顺序
(5)数据补偿
1、判断主库ssh连通性
能连: 调用save_binary_logs脚本,立即保存缺失部分的binlog到从节点
不能连:调用apply_diff_relay_logs脚本,计算从库relaylog的差异,恢复2号从库
(5)解除从库身份
(6)其余从库和主库构建主从
(7)应用透明-vip漂移
1、master_ip_failover
启动vip:ifconfig eth0:1 172.17.0.6/24
停止vip:ifconfig eth0:1 down
2、/etc/mha/app1.cnf文件
master_ip_failover_script=/usr/local/bin/master_ip_failover
(8)故障节点自愈
(9)故障提醒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值