zoukankan      html  css  js  c++  java
  • keepalived+mysql双主

    二、搭建过程
    搭建环境(服务器配置忽略)
    master1: 196.168.126.6/22
    master2: 196.168. 126.7/22
    VIP:196.168. 126.67/32
    master1和master2上安装keepalived服务,并修改配置文件,如下配置
    解压
    tar -xvf keepalived-2.0.8.tar.gz
    cd keepalived-2.0.8

    编译安装
    ./configure --prefix=/usr/local/keepalived
    make && make install
    对命令进行添加
    cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
    cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

    192.168.126.6

    [root@zxw6 ~]# cat /etc/keepalived/keepalived.conf 

    ! Configuration File for keepalived
          
    global_defs {
    notification_email {
    kw_wangyang@tech.cebbak.com
    gongzidong@tech.cebbak.com
    }
          
    notification_email_from kw_wangyang@tech.cebbak.com
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id MASTER-HA
    }

    
    vrrp_script chk_mysql_port {
            script "/root/chk_mysql.sh"
            interval 2
            weight -5
            fall 2
            rise 1
    }
     
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        mcast_src_ip 192.168.126.6
        virtual_router_id 51
        priority 100
        nopreempt
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.67
        }
    }
    track_script {
       chk_mysql_port
    }
    }
    [root@zxw6 ~]# cat chk_mysql.sh 
    #!/bin/bash
    counter=`ss -tnl | grep "LISTEN" |grep "3306" |wc -l`
    if [ ${counter} -eq 0 ]; then
          systemctl stop  keepalived 
    fi
    exit 0

    192.168.126.17

    [root@zxw7 ~]# cat /etc/keepalived/keepalived.conf 
    ! Configuration File for keepalived
          
    global_defs {
    notification_email {
    kw_wangyang@tech.cebbak.com
    gongzidong@tech.cebbak.com
    }
          
    notification_email_from kw_wangyang@tech.cebbak.com
     smtp_server 127.0.0.1
     smtp_connect_timeout 30
     router_id MASTER-HA
    }
    vrrp_script chk_mysql_port {
            script "/root/chk_mysql.sh"
            interval 2
            weight -5
            fall 2
            rise 1
    }
     
    vrrp_instance VI_1 {
        state BACKUP
        interface ens33
        mcast_src_ip 192.168.126.7
        virtual_router_id 51
        priority 90
        nopreempt
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.67
        }
    }
    track_script {
       chk_mysql_port
    }
    }     
    [root@zxw7 ~]# cat chk_mysql.sh 
    #!/bin/bash
    MYSQL=mysql
    MYSQL_HOST=localhost
    MYSQL_USER=root
    MYSQL_PASSWORD=zxw
    CHECK_TIME=3
    #mysql  is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0
    MYSQL_OK=1
    function check_mysql_helth (){
      $MYSQL -h $MYSQL_HOST -u $MYSQL_USER -p${MYSQL_PASSWORD} -e "show status;" >/dev/null 2>&1
        if [ $? = 0 ] ;then
            MYSQL_OK=1
        else
            MYSQL_OK=0
        fi
            return $MYSQL_OK
    }
    while [ $CHECK_TIME -ne 0 ]
    do
            let "CHECK_TIME -= 1"
            check_mysql_helth
    if [ $MYSQL_OK = 1 ] ; then
            CHECK_TIME=0
            exit 0
    fi
    if [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ]
    then
            pkill keepalived
            exit 1
    fi
    sleep 1
    done
  • 相关阅读:
    [Matlab.Matrix] 作为判断条件
    [Matlab.GUI] 学习小结
    [Modelsim] 初识
    [Matlab] isnan
    [Matlab] round
    [VS2012] 无法查找或打开 PDB 文件
    [Matlab.GUI]初识
    表格特效代码全集中
    JAVASCRIPT基础
    第4天:调用样式表
  • 原文地址:https://www.cnblogs.com/itzhao/p/15650928.html
Copyright © 2011-2022 走看看