keepalived+mysql双主
2016-01-14 14:36
585 查看
***********************地址分配***********************
ip1:192.168.31.64
ip2:192.168.31.65
vip:192.168.31.16
双主搭建过程略
**********************keepalived安装及配置文件*********
安装:
yum install keepalived
keepalived配置文件(ip1和ip2一致):
/etc/keepalived/keepalived.conf:
vrrp_script check_run {
script "/etc/keepalived/check_mysql.sh"
interval 20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_run
}
virtual_ipaddress {
192.168.31.16
}
}
mysql检测脚本
/etc/keepalived/check_mysql.sh:
#!/bin/bash
MYSQL=/usr/local/mysql/bin/mysql
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=keepalived
MYSQL_PASSWD=keepalived
CHECK_TIME=3
MYSQL_OK=1
function check_mysql_health(){
$MYSQL -h $MYSQL_HOST -P $MYSQL_PORT -u $MYSQL_USER -p${MYSQL_PASSWD} -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_health
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
**********************keepalived启动及验证*********
启动
ip1和ip2依次执行:
service keepalived start
判断vip绑定到哪个实际ip,如下指向的是64:
[root@centos-zabbix-64 keepalived]# tcpdump vrrp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:34:55.477747 IP 192.168.31.64 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20
14:34:56.479502 IP 192.168.31.64 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20
ip1:192.168.31.64
ip2:192.168.31.65
vip:192.168.31.16
双主搭建过程略
**********************keepalived安装及配置文件*********
安装:
yum install keepalived
keepalived配置文件(ip1和ip2一致):
/etc/keepalived/keepalived.conf:
vrrp_script check_run {
script "/etc/keepalived/check_mysql.sh"
interval 20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_run
}
virtual_ipaddress {
192.168.31.16
}
}
mysql检测脚本
/etc/keepalived/check_mysql.sh:
#!/bin/bash
MYSQL=/usr/local/mysql/bin/mysql
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=keepalived
MYSQL_PASSWD=keepalived
CHECK_TIME=3
MYSQL_OK=1
function check_mysql_health(){
$MYSQL -h $MYSQL_HOST -P $MYSQL_PORT -u $MYSQL_USER -p${MYSQL_PASSWD} -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_health
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
**********************keepalived启动及验证*********
启动
ip1和ip2依次执行:
service keepalived start
判断vip绑定到哪个实际ip,如下指向的是64:
[root@centos-zabbix-64 keepalived]# tcpdump vrrp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:34:55.477747 IP 192.168.31.64 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20
14:34:56.479502 IP 192.168.31.64 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20
相关文章推荐
- wamp环境中mysql更改root密码
- MySQL数据库的热备份和冷备份优缺点
- mysql启动提示mysql.host 不存在,启动失败的解决方法
- 磁盘已满造成的mysql启动失败问题分享
- MySQL下常见的启动失败与备份失败问题的解决教程
- mysql 使用inet_aton和inet_ntoa处理ip地址数据
- MySQL的类似if else 的判断
- 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
- ubuntu的mysql安装文档
- mysql的日志及利用mysqldump备份及还原
- mysql的日志及利用mysqldump备份及还原
- MySQL批量更新批量替换,REPLACE关键字
- mysql数据库跨服务器迁移
- MyBatis学习总结(12)——Mybatis+Mysql分页查询
- MyBatis学习总结(12)——Mybatis+Mysql分页查询
- MyBatis学习总结(12)——Mybatis+Mysql分页查询
- MYSQL的锁介绍,以及死锁发生情况-带例子
- 脚本自动安装单实例mysql
- mysql升级步骤
- mysql中or和in的效率问题