zoukankan      html  css  js  c++  java
  • MySQL高可用HA——keepalived配置

    0、 Keepalived介绍

      Keepalived是基于VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)协议的一款高可用软件。Keepailived有一台主服务器(master)和多台备份服务器(backup),在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。

      首先需要配置MySQL的双主配置,传送门https://www.cnblogs.com/zhqin/p/12239225.html

    1、hadoop106、hadoop107
      通过yum方式安装

    [crazycat@hadoop106 ~]$ sudo yum install -y keepalived
    [crazycat@hadoop107 ~]$ sudo yum install -y keepalived
    

    2、修改hadoop06的Keepalived配置文件/etc/keepalived/keepalived.conf

    ! Configuration File for keepalived
    global_defs {
        router_id MySQL-ha
    }
    vrrp_instance VI_1 {
        state master #初始状态
        interface eth0 #网卡
        virtual_router_id 51 #虚拟路由id
        priority 100 #优先级
        advert_int 1 #Keepalived心跳间隔
        nopreempt #只在高优先级配置,原master恢复之后不重新上位
        authentication {
            auth_type PASS #认证相关
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.1.100 #虚拟ip
        }
    }
    #声明虚拟服务器
    virtual_server 192.168.1.100 3306 {
        delay_loop 6
        persistence_timeout 30
        protocol TCP
        #声明真实服务器
        real_server 192.168.1.106 3306 {
            notify_down /var/lib/mysql/killkeepalived.sh #真实服务故障后调用脚本
            TCP_CHECK {
                connect_timeout 3 #超时时间
                nb_get_retry 1 #重试次数
                delay_before_retry 1 #重试时间间隔
            }
        }
    }
    

    3、修改hadoop107的Keepalived配置文件/etc/keepalived/keepalived.conf

    ! Configuration File for keepalived
    global_defs {
        router_id MySQL-ha
    }
    vrrp_instance VI_1 {
        state backup #初始状态
        interface eth0 #网卡
        virtual_router_id 51 #虚拟路由id
        priority 50 #优先级
        advert_int 1 #Keepalived心跳间隔
        authentication {
            auth_type PASS #认证相关
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.1.100 #虚拟ip
        }
    }
    #声明虚拟服务器
    virtual_server 192.168.1.100 3306 {
        delay_loop 6
        persistence_timeout 30
        protocol TCP
        #声明真实服务器
        real_server 192.168.1.107 3306 {
            notify_down /var/lib/mysql/killkeepalived.sh #真实服务故障后调用脚本
            TCP_CHECK {
                connect_timeout 3 #超时时间
                nb_get_retry 1 #重试次数
                delay_before_retry 1 #重试时间间隔
            }
        }
    }
    

    4、在hadoop106、hadoop107 编辑脚本文件 /var/lib/mysql/killkeepalived.sh

    [crazycat@hadoop106 ~]$ sudo vim /var/lib/mysql/killkeepalived.sh
    
    #! /bin/bash
    sudo service keepalived stop
    

    5、给两台机器的killkeepalived.sh脚本加执行权限

    sudo chmod +x /var/lib/mysql/killkeepalived.sh
    

    6、在两台机器上设置开机自启

    sudo chkconfig keepalived on
    

    7、在两台机器上检查开机自启状态

    sudo chkconfig --list | grep keepalived
    

    8、确保MySQL先于Keepalived启动
    第一步:查看MySQL启动次序

    [crazycat@hadoop106 ~]$ sudo vim /etc/init.d/mysql
    

    第二步:查看Keepalived启动次序

    sudo vim /etc/init.d/keepalived
    

    保证64<86即可,如果keepalived中的启动顺序在MySQL的前面,将这两个数值交换即可。(为了避免和其他的进程造成冲突)

    9、在两台机器上分别启动keepalived

    sudo service keepalived start
    

    10、在其他机器上通过配置的虚拟ip:192.168.1.100是否可以连接mysql数据库

    11、将hadoop106的MySQL服务停掉,看是否会自动切换到hadoop107上

    [crazycat@hadoop106 ~]$ sudo service mysql stop
    

    12、再将MySQL服务启动

    [crazycat@hadoop106 ~]$ sudo service mysql start
    

    13、再将keepalived服务启动

    [crazycat@hadoop106 ~]$ sudo service keepalived start
    
  • 相关阅读:
    P2P之UDP穿透NAT的原理与实现
    Jmeter压力测试工具安装及使用教程
    整合Solr与tomcat以及第一个core的配置
    windows下Redis安装及利用java操作Redis
    spring整合Jersey 无法注入service的问题
    MySQL-Navicat连接MySQL出现1251或1130报错的解决方法
    华为VRP
    开发工具-Sublime
    服务器-Windows 2003 R2-取消多用户登录-多个用户登录显示不同的界面解决方法
    服务器-惠普 HP ProLiant-linux系统-RAID信息查看和阵列卡操作-hpacucli工具使用
  • 原文地址:https://www.cnblogs.com/zhqin/p/12239303.html
Copyright © 2011-2022 走看看