MySQL学习笔记-Keepalived VIP配置使用

 

如果我们使用的MHA时,app1.cnf 中的master_ip_failover_script和master_ip_online_change_script两项没有配,即没有使用MHA的VIP方式,可使用keepalived来设置VIP。

本例中keepalived的master端和backup端ip:

master:10.1.5.8

backup:10.1.5.9

 

MHA配置见:http://blog.csdn.net/lichangzai/article/details/50470771

 

1. 安装keepalived

 

linux6自带keepalived,yum installkeepalived安装,配置样本是vi /etc/keepalived/keepalived.conf

linux5需下载安装,如下:

下载:http://www.keepalived.org/download.html

# tar zxvf keepalived-1.2.19.tar.gz

# cd keepalived-1.2.19

# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.39-300.26.1.el5uek

如遇到configure: error: No SO_MARK declaration in headers,则用./configure --prefix=/usr/local/keepalived --disable-fwmark

# make

# make install

# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/init.d/

# cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/

 

 

2. 配置keepalived

 

# mkdir /etc/keepalived

 

master配置:

# cat/etc/keepalived/keepalived.conf

! Configuration File forkeepalived

 

global_defs {

   notification_email {

     licz@umessage.com.cn

     94097432@qq.com

     lichangzai@163.com

   }

   notification_email_fromroot@localhost.localdomain

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 100

    nopreempt

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1234

    }

    virtual_ipaddress {

        10.1.5.21/24

    }

}

 

 

backup配置:

# cat /etc/keepalived/keepalived.conf

! Configuration File forkeepalived

 

global_defs {

   notification_email {

     licz@umessage.com.cn

     94097432@qq.com

     lichangzai@163.com

   }

   notification_email_fromroot@localhost.localdomain

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1234

    }

    virtual_ipaddress {

        10.1.5.21/24

    }

}

 

 

3.用脚本实现定时检查MySQL实例是否存活


安装keepalieved的节点,定时检查MySQL实例是否存活,宕掉时自动杀掉keepalived进程,从而实现VIP转移到backup节点。

# crontab -l

* * * * * /data/mysqldata/scripts/check_keepalived.sh > /dev/null  2>&1 &

 

# cat /data/mysqldata/scripts/check_keepalived.sh

#/bin/bash

source /root/.bash_profile

# source /data/mysqldata/scripts/mysql_env.ini

MYSQL_CMD=/usr/local/mysql/bin/mysql

CHECK_TIME=3  #check 3 times

MYSQL_OK=1    #MYSQL_OK values to 1 when mysql servicework,else values to 0

 

function check_mysql_health (){

   $MYSQL_CMD -uroot -p123456 -S /var/lib/mysql/mysql.sock -e "show status;" > /dev/null 2>&1

   if [ $? = 0 ]

   then

      MYSQL_OK=1

      /etc/init.d/keepalived start

   else

      MYSQL_OK=0

   fi

   return $MYSQL_OK

}

 

while [ $CHECK_TIME -ne 0 ]

do

   let "CHECK_TIME -=1"

   check_mysql_health

   if [ $MYSQL_OK = 1 ]

   then

      CHECK_TIME=0

      exit 0

   fi

   if [ $MYSQL_OK -eq 0 ] && [$CHECK_TIME -eq 0 ] 

   then

      /etc/init.d/keepalived stop

      echo "mysql 3306实例宕掉,keepalived已关闭" |mutt  -s "master keepalived已关闭"94097532@qq.com

      exit 1

   fi

   sleep 1

done

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值