mysql mha rpm_MySQL MHA应用实践(方案实战)

1、环境与条件

已存在主从架构环境

主机名

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>show slave status\G;

IO与SQL进程为YES

参数更改

relay_log_purge = 0 #不自动删除relay log 以便于宕机修复数据

log_bin = /data/log/leo-bin #从库开启binlog 以便于宕机修复数据

expire_logs_days=7

log-slave-updates=1

2、配置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

3、安装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;

4、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

5、配置MHA管理节点

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时会通过leo2、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

6、启动及测试

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 忽律上一次故障切换

7、配置VIP漂移

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值