MySQL主从同步复制可以实现去数据库进行备份,保证网站数据的快速恢复,一般应用程序读写均在Master上,如果一旦Master服务器宕机,需要手工切换WEB网站连接数据库的IP至丛库,可以基于keepalived软件实现自动IP切换,保证网站高可用率,MySQL+keepalived集群架构配置方法如下:MySQL主库、丛库分别安装Keepalived服务:
(1)MySQL主库、丛库分别安装Keepalived服务:
tar -xzvf keepalived-1.2.1.tar.gz
cd keepalived-1.2.1
./configure
make
make install
DIR=/usr/local/
cp $DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -p /etc/keepalived
cp $DIR/sbin/keepalived /usr/sbin/
(2)MySQL+Keepalived Master配置文件代码如下:
! Configuration File for keepalived
global_defs {
notification_email {
wgkgood@163.com
}
notification_email_from wgkgood@163.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_mysql {
script "/data/sh/check_mysql.sh"
interval 2
weight 2
}
# VIP1
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 151
priority 100
advert_int 5
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.198
}
track_script {
chk_mysql
}
}
(3)MySQL+Keepalived Backup配置文件代码如下:
! Configuration File for keepalived
global_defs {
notification_email {
wgkgood@163.com
}
notification_email_from wgkgood@163.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_redis {
script "/data/sh/check_mysql.sh"
interval 2
weight 2
}
# VIP1
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 151
priority 90
advert_int 5
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.198
}
track_script {
chk_mysql
}
}
(4)两台MySQL服务器上配置/data/sh/check_mysql.sh脚本,内容如下:
#!/bin/bash
#auto check mysql process
NUM=`ps -ef |grep mysql|grep -v grep|grep -v check|wc -l`
if
[[ $NUM -eq 0 ]];then
/etc/init.d/keepalived stop
fi
(5)WEB网站直接连接keepalived VIP即可实现网站自动切换,发现MySQL宕机,会自动切换至丛库上。