mysql1.4应用_Keepalived1.4.0应用在MySQL 5.7.19上实现主备高可用

Keepalived1.4.0应用在MySQL 5.7.19上实现主备高可用

发布时间:2020-05-21 15:00:27

来源:51CTO

阅读:138

作者:三月

本文主要给大家介绍Keepalived1.4.0应用在MySQL 5.7.19上实现主备高可用,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下Keepalived1.4.0应用在MySQL 5.7.19上实现主备高可用吧。

1、基本环境

JDK 1.8_171

MySQL 5.7.19

CentOS 7.4

Keepalived 1.4.0

DB1:192.168.200.180

DB2:192.168.200.181

VIP: 192.168.200.99

2435abfc7441c9450c3ecb3f16db4857.png

2、下载安装Keepalived

2.1、keepalived下载下载地址:wget http://www.keepalived.org/software/keepalived-1.4.0.tar.gz

2.2、keepalived安装

2台均按照此种方式进行安装yum install gcc gcc-c++ make openssl openssl-devel net-snmp-devel psmisc ipvsadm libnfnetlink-devel popt popt-devel popt-static openssl-devel kernel-devel libnl libnl-devel -y    # 安装依赖

cd /usr/local/src

tar -zvxf keepalived-1.4.0.tar.gz    # 解压

cd keepalived-1.4.0

./configure --prefix=/usr/local/keepalived --enable-snmp    # 编译

make && make install    # 安装

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/    # 拷贝配置

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived

ln -s /usr/local/keepalived/sbin/keepalived /sbin/keepalived

2.3、Keepalived配置

DB1上面的配置:[root@mysql01 keepalived-1.4.0]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bak

[root@mysql01 keepalived-1.4.0]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

nvidiacheng@163.com

}

notification_email_from nvidiacheng@163.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id Node_Master

}

vrrp_instance VI_1 {

state BACKUP          # 可配置master和backup模式,为了防止脑裂现象,主备均需要设置为backup模式,master模式会抢占VIP

interface ens33      # 网卡名

virtual_router_id 43     # VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组

priority 100      # 权重,主节点要大于备节点

unicast_src_ip  192.168.200.180     # 本地IP地址

unicast_peer {

192.168.200.181     # 对端IP地址,此地址一定不能忘记

}

nopreempt            # 配合backup,防止切换后,主库服务恢复正常后,IP漂移过来

advert_int 1          # 组播信息发送间隔,两个节点设置必须一样

authentication {     # 设置验证信息,两个节点必须一致

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.200.99      # VIP地址

}

}

virtual_server 192.168.200.99 3306 {

delay_loop 6

lb_algo wrr

lb_kind DR

persistence_timeout 50

protocol TCP

real_server 192.168.200.180 3306 {

weight 1

notify_down /etc/keepalived/mysql.sh

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}

DB2上面配置[root@mysql02 keepalived-1.4.0]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bak

[root@mysql02 keepalived-1.4.0]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

nvidiacheng@163.com

}

notification_email_from nvidiacheng@163.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id Node_backup

}

vrrp_instance VI_1 {

state BACKUP

interface ens33

virtual_router_id 43

priority 90

unicast_src_ip  192.168.200.181

unicast_peer {

192.168.200.180

}

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.200.99

}

}

virtual_server 192.168.200.99 3306 {

delay_loop 2

lb_algo wrr

lb_kind DR

persistence_timeout 60

protocol TCP

real_server 192.168.200.181 3306{

weight 1

notify_down /etc/keepalived/mysql.sh

echo '3' >  /etc/keepalived/t.log

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}

mysql.sh脚本配置内容(2台一样):[root@mysql01 keepalived]# vim /etc/keepalived/mysql.sh

#!/bin/bash

run_status=`service keepalived status|grep running|wc -l`

pro_status=`ps -ef |grep keepalived|grep -v grep |wc -l`

service keepalived stop

if [ ${run_status} != 0 ] || [ ${pro_status} != 0 ]

then

pkill keepalived

fi

给mysql.sh赋可执行权限[root@mysql01 keepalived]# chmod +x mysql.sh

都配置好后启动keepalived进行测试:service keepalived start   # 启动Keepalived

service keepalived restart   # 重启Keepalived

service keepalived stop   # 停止Keepalived

service keepalived status   # 查看Keepalived运行状态

ps aux | grep keepalived   # 查看Keepalived进程

2a675d878265fe400b575d9be654289a.png

3.3、测试Keepalived

2台均启动Keepalived后,分别查看网卡

ace44404c25718cc3c9c43cb48114431.png

7a2ce922df961cde4f541fb3084c5a91.png

从上图可以看出,VIP地址在主节点

使用Navicat工具分别连接2个节点和VIP节点

47c00cdcb4786889ca90eb2f341c18fc.png

这个时候我们将节点1的MySQL停止,模拟主节点数据库故障来测试VIP是否会漂移到备节点

e448512033d9c4a075d5185fa2d34718.png

如上图,主节点MySQL停止后,Keepalived进程也结束了,VIP地址不见了

查看备节点的网卡,发现VIP已经漂移过来了

7ec9d2337d26db8e4b47889aff1a7815.png

用Navicat打开VIP,可以正常访问,主节点无法打开

3afde14949b7aa9fb278b7a6774ffb6d.png

重新启动主节点MySQL服务和Keepalived服务,在停止备节点测试(略过)

看完以上关于Keepalived1.4.0应用在MySQL 5.7.19上实现主备高可用,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值