mysql互为主从 keep_Mysql互为主从+keepalived实现高可用性(2)

3)现在db-51与db-52 的Mysql已互为主从,现在要实现高可用性,需要安装keepalived服务,并设置vip地址。

db-51    192.168.4.51      Mysql 5.7

db-52   192.168.4.52      Mysql 5.7

vip: 192.168.4.50

1.在192.168.4.51 ( db-51 )安装keepalive,并配置参数:

1 [root@db-51 ~]#yum install -y keepalived2 [root@db-51 ~]#vim /etc/keepalived/keepalived.conf3 ! Configuration File forkeepalived4

5 global_defs {6 router_id mysqlmha7 }8

9 vrrp_script check_run {10 script "/opt/chk_mysql.sh"

11 interval 1

12 }13

14 vrrp_instance VI_1 {15 state BACKUP                    //因为开始非抢占方式,必须BACKUP16 interface eth017 virtual_router_id 151

18 priority 100

19 advert_int 1

20 nopreempt21 authentication {22 auth_type PASS23 auth_pass 1111

24 }25 track_script {                  //track_script表示执行健康检查脚本26 check_run weight=0          //如果故障,就把weight配置成0.

27 }28 virtual_ipaddress {29 192.168.4.50/24 brd 192.168.4.255 dev eth0 label eth0:1    //设置vip地址(其配置符合ip命令)

30 }31 }

2)在192.168.4.51配置keepalived检查mysql服务脚本

1 [root@db-51 ~]#touch /opt/chk_mysql.sh

2 [root@db-51 ~]#vim /opt/chk_mysql.sh

3 #!/bin/bash4 count=$(netstat -na | grep"LISTEN" | grep "3306" | wc -l )5 if [[ "$count" -eq 0 ]] ; then

6 exit 2

7 fi

8 [root@db-51 ~]#chmod a+x /opt/chk_mysql.sh

9 [root@db-51 ~]#scp /etc/keepalived/keepalived.conf root@192.168.4.52:/etc/keepalived/

10 [root@db-51 ~]#scp //opt/chk_mysql.sh root@192.168.4.52:/opt/

3.在192.168.4.52 ( db-52 )安装keepalive,并配置参数

1 [root@db-52 mysql]#yum install -y keepalived2 [root@db-52 mysql]#vim /etc/keepalived/keepalived.conf3 ! Configuration File forkeepalived4

5 global_defs {6 router_id mysqlmha7 }8

9 vrrp_script check_run {10 script "/opt/chk_mysql.sh"

11 interval 1

12 }13

14 vrrp_instance VI_1 {15 state BACKUP16 interface eth017 virtual_router_id 151

18 priority 90

19 advert_int 1

20 authentication {21 auth_type PASS22 auth_pass 1111

23 }24 track_script {25 check_run weight=0

26 }27 virtual_ipaddress {28 192.168.4.50/24 brd 192.168.4.255 dev eth0 label eth0:1

29 }30 }31 [root@db-52 mysql]#

小结:

注意:在配置keepalived.conf中 { 与前面字符必须有空格。否则该配置段会被忽略的。

注意:上述keepalived配置为非抢占式。

keepalived做HA时,经常会遇到抢占式的master和backup之间的切换问题。

通常如果master服务死掉后backup会变成master,但是当master服务又好了的时候 master此时会抢占VIP,这样就会发生两次切换对业务繁忙的网站来说是不好的。所以我们要在配置文件加入  nopreempt  非抢占,但是这个参数只能用于state 为backup,故我们在用HA的时候最好master 和backup的state都设置成backup 让其通过priority来竞争。

注意:这样(非抢占式)配置后,我们要注意启动keepalived服务的顺序,假设我想让A成为backup那就不能先启动A的keepalived服务。

注意:检查keepalived软件版本:

1 [root@tomcat1 ~]# keepalived -v2 Keepalived v1.2.13 (03/19,2015)

注意:keepalived.conf配置文件中virtual_ipaddress 配置项遵从ip命令配置。

virtual_ipaddress {192.168.4.50      //如果只写IP地址,掩码默认为32位,label绑定到keepalive指定接口上。如eth0:1}

注意:keepalived.conf配置文件中

1 vrrp_script chk_mysql_port {2 script "/opt/chk_mysql.sh"

3 interval 2

4 weight -20

5 fall 2

6 rise 1

7 }

1)关于配置健康检查配置vrrp_script时要搞清楚执行过程:(摘自:https://blog.csdn.net/qq_41814635/article/details/84166700)

主备的优先级顺序:

vrrp_script脚本中weight这个值必须指定,否则有时候重启服务后该节点被显示为fault 状态。weight值分为正值和负值,假定weight值为W,初始的优先级为P。

当weight值小于0时:

如果检测脚本返回值=0,则节点最终优先级不改变;

如果检测脚本返回值≠0,则节点最终优先级=P-W,优先级会减小。

当weight值大于0时:

如果检测脚本返回值=0,则节点最终优先级=P+W,优先级会增加;

如果检测脚本返回值≠0,则节点最终优先级不改变。

2)vrrp_script配置段包括:

-script: 一句指令或者一个脚本文件,需返回0(成功)或非0(失败),keepalived以此为依据判断其监控的服务状态。

-interval: 健康检查周期。

-weight: 优先级变化幅度。

-fall: 判定服务异常的检查次数。

-rise: 判定服务正常的检查次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值