mysql+keepalived搭建高可用环境

假设已经搭建好了mysql并且存在正常状态的主主复制

1、安装keepalived并且根据业务的vip及主机网卡,ip配置好/etc/keepalived/keepalived.conf,具体操作已在代码框中实现

1、安装环境(谨慎,建议先编译,能通过就不要进行第一步了)
yum -y install popt popt-devel popt-static openssl-devel kernel-devel
【必要时卸载掉libnl 和 libnl-devel】
2、编译安装
#tar -zxvf keepalived-1.2.23.tar.gz
#cd keepalived-1.2.23
#./configure --prefix=/usr/local/keepalived
编译结果如下则正确,不必每一项都比对
Keepalived configuration
------------------------
Keepalived version       : 1.2.23
Compiler                 : gcc
Compiler flags           : -g -O2
Extra Lib                : -lssl -lcrypto -lcrypt 
Use IPVS Framework       : Yes
IPVS sync daemon support : Yes
IPVS use libnl           : No
fwmark socket support    : Yes
Use VRRP Framework       : Yes
Use VRRP VMAC            : Yes
Use VRRP authentication  : Yes
SNMP keepalived support  : No
SNMP checker support     : No
SNMP RFCv2 support       : No
SNMP RFCv3 support       : No
SHA1 support             : No
Use Debug flags          : No
Memory alloc check       : No
libnl version            : None
Use IPv4 devconf         : No
Use libiptc              : No
Use libipset             : No
#make && make install
3、配置环境
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir -p /etc/keepalived
#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#chmod +x /etc/init.d/keepalived
4、编辑配置文件
#vim /etc/keepalived/keepalived.conf

global_defs {
   router_id yy-interfacedb01        ###主机名,hostname
}

vrrp_instance VI_1 {
    state MASTER       ###ha环境中扮演的角色
    interface bond0        ###网卡
    virtual_router_id 63   ###主机和备机相同的router_id,数字可随机
    priority 100    ###争夺vip依靠的权限,两台keepalived服务同时存在的主机,权限值高的将会获取vip
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1663    ###主从两台机子配置应该相同
    }
    virtual_ipaddress {
        172.16.16.64/32   ###此处填写vip,掩码必须写32,原因我也不清楚
    }
}

2、主机上配置高可用环境(主从两台机子做相同配置)

1、编写监控脚本    
#mkdir /home/mysql/watch
#touch /home/mysql/watch/check_mysql_process.sh
### check_mysql_process.sh 内容如下 ### #
!/bin/sh #check mysql & switch hb HA process N/A rm -f /home/mysql/watch/mysql_process.exist ps -ef|grep mysql|grep datadir|grep 8808 |grep -v grep > /home/mysql/watch/mysql_process.exist if [ -s /home/mysql/watch/mysql_process.exist ] ;then echo "OK" else /etc/init.d/keepalived stop #echo "hahaha" > /tmp/wocao echo `date` >> /home/mysql/watch/result.txt fi ### 其中需要注意的是数据库实例端口号 ### 2、部署监控脚本,每10s中执行一次 #chmod a+x /home/mysql/watch/check_mysql_process.sh #crontab -e ### MySQL HA ### * * * * * /home/mysql/watch/check_mysql_process.sh >/dev/null 2>&1 * * * * * sleep 10;/home/mysql/watch/check_mysql_process.sh >/dev/null 2>&1 * * * * * sleep 20;/home/mysql/watch/check_mysql_process.sh >/dev/null 2>&1 * * * * * sleep 30;/home/mysql/watch/check_mysql_process.sh >/dev/null 2>&1 * * * * * sleep 40;/home/mysql/watch/check_mysql_process.sh >/dev/null 2>&1 * * * * * sleep 50;/home/mysql/watch/check_mysql_process.sh >/dev/null 2>&1

 

posted @ 2017-03-02 14:29  一头猪的奇妙旅行  阅读(414)  评论(0编辑  收藏  举报