MySQL MHA高可用

目录

一、创建一主两从集群

二、MHA部署

三、故障切换


一、创建一主两从集群

安装好mysql (rpm包形式)

配置文件    

vim /etc/my.cnf

server_id=1    #vm2就改成2递增
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
log_bin=binlog

启动服务

systemctl start mysqld

配置master

cat /var/log/mysqld.log   查看初始密码

修改初始密码等 

mysql -p
alter user root@localhost identified by 'Yl20010801+';
grant replication slave on *.* to yyl@'%' identified by 'Yl20010801+';

slave配置:

根据上述更改配置等

change master to master_host='192.168.189.111', master_user='repl', master_password='Yl20010801+', master_auto_position=1;
start slave;
show slave status\G;

vm3节点的配置以此类推

测试:

create database test;
use test;
create table userdb(
> username varchar(25) not null,
> passworf varchar(50) not null);
insert into userdb values ('user1','111');
select * from userdb;

二、MHA部署

vm4上安装管理端软件

cd MHA-7/
yum install -y *.rpm

 

管理端配置ssh免密

ssh-keygen
ssh-copy-id vm4

把密钥复制到各节点

scp -r .ssh/ vm1:
scp -r .ssh/ vm2:
scp -r .ssh/ vm3:

测试:

复制客户端软件

scp mha4mysql-node-0.58-0.el7.centos.noarch.rpm vm1:
scp mha4mysql-node-0.58-0.el7.centos.noarch.rpm vm2:
scp mha4mysql-node-0.58-0.el7.centos.noarch.rpm vm3:

vm1、2、3上安装客户端软件

yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm

MHA配置

vm4:

mkdir /etc/masterha
vim /etc/masterha/app1.cnf
[server default]
user=root                  #mysql管理员
password=Yl20010801+       #mysql管理员密码
ssh_user=root              #ssh免密用户
repl_user=repl             #mysql主从复制用户
repl_password=Yl20010801+
master_binlog_dir=/var/lib/mysql  #mysql数据库目录
remote_workdir=/tmp
secondary_check_script= masterha_secondary_check -s 192.168.189.112 -s 192.168.189.113
ping_interval=3
# master_ip_failover_script= /script/masterha/master_ip_failover
# shutdown_script= /script/masterha/power_manager
# report_script= /script/masterha/send_report
# master_ip_online_change_script= /script/masterha/master_ip_online_change
manager_workdir=/etc/masterha/app1
manager_log=/etc/masterha/app1/manager.log

[server1]
hostname=192.168.189.111
candidate_master=1
check_repl_delay=0

[server2]
hostname=192.168.189.112
candidate_master=1
check_repl_delay=0

[server3]
hostname=192.168.189.113
no_master=1

在master上设置mysql 管理员权限,slave节点会自动同步

grant all on *.* to root@'%' identified by 'Yl20010801+';

检测各节点ssh免密连接

masterha_check_ssh --conf=/etc/masterha/app1.cnf

检测主从复制集群状态

masterha_check_repl --conf=/etc/masterha/app1.cnf

三、故障切换

手动切换(master正常)

masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.189.112 --new_master_port=3306 --orig_master_is_new_slave --running_updates_limit=10000

手动切换(master故障)

手动停止master节点上的msql服务

systemctl stop mysqld.service
masterha_master_switch --master_state=dead --conf=/etc/masterha/app1.cnf --dead_master_host=192.168.189.112 --dead_master_port=3306 --new_master_host=192.168.189.111 --new_master_port=3306 --ignore_last_failover

故障节点需要手动修复,重新加入主从集群

systemctl start mysqld.service
change master to master_host='192.168.189.111', master_user='repl', master_password='Yl20010801+', master_auto_position=1;

自动切换

故障切换后会生成lock文件,需要手动删除

cd /etc/masterha/app1/
rm -f app1.failover.complete

在进行自动切换之前,必须保证主从集群正常,一主两从加入故障切换脚本

vim  /etc/masterha/app1.cnf
master_ip_failover_script= /usr/local/bin/master_ip_failover
master_ip_online_change_script= /usr/local/bin/master_ip_online_change

需要有可执行权限

cd /usr/local/bin/
chmod +x *

按需修改vip和网卡名称  启动manger程序,并打入后台运行,完成切换任务后进程会自动退出

vim /usr/local/bin/master_ip_failover
vim /usr/local/bin/master_ip_online_change

masterha_manager --conf=/etc/masterha/app1.cnf &

关闭master以后,会自动发起故障切换,mha管理器在完成切换后自动退出程序。查看故障切换日志

systemctl stop mysqld.service

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值