首先配置keepalived。链接如下:
http://blog.itpub.net/28939273/viewspace-1808369/

主服务器keepalived的配置文件内容如下:

[root@yoon keepalived]# cat keepalived.conf 
vrrp_script check_mysql_port {
    script "/etc/keepalived/keepalived_check_mysql.sh"    
    interval 1
    weight -10
}

global_defs {
    router_id MYSQL_YOON
}

vrrp_instance mysql_yoon_master {
    state MASTER
    interface eth0
    virtual_router_id 245
    priority 100
    advert_int 1

authentication {
        auth_type PASS
        auth_pass mysql_yoon
    }

virtual_ipaddress {
        172.16.232.245
    }

track_script {
        check_mysql_port
    }
}

备用服务器keepalived配置文件内容:
[root@back keepalived]# cat keepalived.conf 
vrrp_script check_mysql_port {
    script "/etc/keepalived/keepalived_check_mysql.sh"
    interval 1
    weight -10
}

global_defs {
    router_id MYSQL_YOON
}

vrrp_instance mysql_yoon_master {
    state MASTER
    interface eth0
    virtual_router_id 245
    priority 90
    advert_int 1

authentication {
        auth_type PASS
        auth_pass mysql_yoon
    }

virtual_ipaddress {
        172.16.232.245
    }

track_script {
        check_mysql_port
    }
}

在/etc/keepalived/下创建keepalived_check_mysql.sh

[root@yoon keepalived]# vi keepalived_check_mysql.sh 
#!/bin/bash
MYSQL=/export/servers/mysql/bin/mysql
MYSQL_HOST=127.0.0.1       #如何在执行过程中,keepalived进程莫名自动关闭的话,尝试将127.0.0.1改成localhost,我是由localhsot改成了127.0.0.1才可以,一定要注意
MYSQL_USER=root
MYSQL_PASSWORD=yoon
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
    /etc/init.d/keepalived stop
    exit 1
fi
sleep 1
done

并在备用服务器上也创建同样的脚本

通过keepalived实现 MySQL VIP 自动切换的更多相关文章

  1. zk mysql 主从自动切换

    zookeeper测试: DBI 版本: /DBI-1.616# zjtest7-redis:/root/DBD-mysql-4.031# perl Makefile.PL Can't exec &q ...

  2. Nginx+Keepalived主从双机热备+自动切换

    1 安装配置nginx 参考: http://www.cnblogs.com/jager/p/4388202.html 2 安装配置keepalived tar xvf keepalived-1.2. ...

  3. 利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

    应用背景: MySQL复制(主主,主从...)能在保证数据的备份的同时也能够做读写分离分摊系统压力,但是发生单点故障时,需要手动 切换到另外一台主机.LVS和Keppalived可以设定一个VIP来实 ...

  4. 【转】Keepalived无法绑定VIP故障排查经历

    一 故障描述 我在台湾合作方给定的两台虚拟机上部署HAProxy+Keepalived负载均衡高可用方案.在配置完Keepalived后,重新启动Keepalived,Keepalived没有绑定VI ...

  5. 使用keepalived实现mysql主从复制的自动切换

    最近测试了一下mysql+keepalived实现主从自动切换,主从都需要安装keepalived,使用vip漂移实现主从自动切换,这里主要记录的是keepalived的文件配置. 这里mysql搭建 ...

  6. mysql主从备份+keepalived自动切换

    数据库这一层需要做到避免单点故障可以是主从备份和主主备份,主主备份可能有性能损耗和数据同步的问题.这里记录下主从备份, mysql进行备份之前确保mysql的版本是一样的,我这里用的都是mysql5. ...

  7. Keepalived与MySQL互为主从自动切换配置

    为解决Mysql数据库单点问题,实现两台MySQL数据库互为主备,双向replication.当一Master出现问题,则将Slave切换为Master继续工作. 环境说明 系统版本:CentOS L ...

  8. MySQL Orchestrator自动导换+VIP切换

    目录 Orchestrator总体结构...  测试环境信息...  Orchestrator详细配置...  SSH免密配置...  /etc/hosts配置...  visudo配置...  /e ...

  9. 【转】双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

    架构简介 前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构.此架构主要是由kee ...

随机推荐

  1. 日期类型的input元素设置默认值为当天

    html文件:<input name="" type="date" value="" id="datePicker" ...

  2. IOS 9 遇到的问题

    IOS9中通过url scheme调用其他app时候,控制台会输入 canOpenURL: failed for URL: "XXXXXX://" - error: "T ...

  3. z-index无效

    1.要想给元素设置z-index样式,必须先让它变成定位元素,说的明白一点,就是要给元素设置一个postion:relative(定位元素:position属性值设置除默认值static以外的元素,包 ...

  4. 跟我学习dubbo-ZooKeeper注册中心安装(2)

    注册中心 可选方案:zookeeper.Redis 1.建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端 2.Zookeeper是Apache Hadoop的子项目,强度相 ...

  5. 各种LICENSE的作用--GET

    许 多开发者和设计者希望把他们的作品作为开源项目共享,他们希望其他人能够利用和共享他们的代码. 而各种开源社区就是因为这个原因而充满活力.开源软件可以用于你能想象得到的任何应用程序,许多web设计人员 ...

  6. SQL Server 发布订阅 发布类型详解

    MicrosoftSQL Server 提供了三种复制类型. 每种复制类型都适合于不同应用程序的要求. 根据应用程序需要,可以在拓扑中使用一种或多种复制类型: 快照复制 事务复制 合并复制 为了帮助您 ...

  7. spark写入Oracle 报错 java.lang.ArrayIndexOutOfBoundsException: -32423

    原因: oracle 10g的驱动执行的批量提交只支持32768个参数,如果表的字段多于32个,就会出现该异常 解决办法: 升级oracle的驱动版本,换成ojdbc6.jar

  8. dicom格式文件 界定标识符的处理

    转自:http://www.cnblogs.com/assassinx/archive/2013/05/18/3084854.html 说到底无非几个事情 :1传输语法确定 2数据元素读取 3 7fe ...

  9. How Do I Declare A Block in Objective-C?

    As a local variable: returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...}; As a p ...

  10. Javascript Event

    事件原理 JS的事件原理,先看一段HTML. <html> <head> <title>Example</title> </head> &l ...