標籤:keepalive
mysql高可用服務部署
Mysql主從搭建完畢,(mysql 主從部署請看MySQL 主從複製)現在有一個問題,如果master伺服器down機了,如何快速恢複服務呢?
我們有兩套解決方案:
1.如果程式串連的是master的IP,直接在slave伺服器上添加master的IP即可。這個手動去操作,而且需要花費時間比較長,可能還會出現誤操作的情況,不推薦
2.可以使用keepalived、heartbeat作為HA檢測軟體,檢查MySQL服務是否正常,不正常則自動切換到slave上,推薦使用
那麼我們接下來就看一下如何?:
cd /data
yum -y install dernel-devel popt-devel openssl-devel
wget http://keepalived.org/software/keepalived-1.2.1.tar.gz
tar zxf keepalived-1.2.1.tar.gz
cd keepalived-1.2.1
./configure --prefix=/usr/local/keepalived
--with-kernel-dir=/usr/src/kernels/2.6.32-573.7.1.el6.x86_64/
在編譯的時候會遇到一些問題
****************************************************************************************
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/74/1C/wKioL1YU0e6CYe1VAAIjrFQir0Q579.jpg" title="1.png" alt="wKioL1YU0e6CYe1VAAIjrFQir0Q579.jpg" />
注意:若此處 /usr/src/kenels/ 下沒東西,可能過安裝 kernel-devel 組件:
yum -y install kernel-devel
安裝後,執行以上操作
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/74/1F/wKiom1YU0-6j03-8AAHaXnmBRCA818.jpg" title="2.png" alt="wKiom1YU0-6j03-8AAHaXnmBRCA818.jpg" />說明缺少popt-devel 組件,安裝此組件即可:
yum -y install popt-devel
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/74/1D/wKioL1YU4Sqzy7yBAAGosEJfU1Y385.jpg" title="6.png" alt="wKioL1YU4Sqzy7yBAAGosEJfU1Y385.jpg" />
出現此提示,是缺少openssl-devel 組件,直接安裝即可
****************************************************************************************
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/74/1F/wKiom1YU1NrgykvWAAImzIiTmPM110.jpg" title="3.png" alt="wKiom1YU1NrgykvWAAImzIiTmPM110.jpg" />
出現此介面,證編譯成功
make && make install ;echo $?
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/74/1C/wKioL1YU2CKDMRd5AAF3CUPrSNo016.jpg" title="4.png" alt="wKioL1YU2CKDMRd5AAF3CUPrSNo016.jpg" />
若返回0,即證明安裝成功
設定開機啟動
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig
cp /usr/local/keepalived/sbin/keepalived /usr/sbin
chkconfig --add keepalived
chkconfig --level 35 keepalived on
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/74/1C/wKioL1YU2R7jOUYXAANVgWCY7hg526.jpg" title="5.png" alt="wKioL1YU2R7jOUYXAANVgWCY7hg526.jpg" />
keepalived 安裝成功
mkdir -p /etc/keepalived
配置master伺服器,keepalived設定檔內容如下:
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 151
priority 100
advert_int 5
nopreempt
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.10.200 #此處為虛擬IP
}
}
virtual_server 192.168.33.100 3306 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.10.171 3306 { #此處為你的真實機IP
weight 100
notify_down /data/sh/mysql.sh #此處為關閉 keepalived 的指令碼地址
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
mysql從 主機部署與主相同,只需將設定檔中的 real_server 修改為自己的IP ,將優先順序修改為小於100的數字即可
mysql.sh 指令碼內容為:
#!/bin/bash
pkill -0 mysqld
if [[ ! $? -eq 0 ]];then
/etc/init.d/mysqld start
sleep 5
pkill -0 mysqld
if [[ ! $? -eq 0 ]];then
pkill keepalived
fi
fi
給指令碼執行許可權:
chmod +x /data/sh/mysql.sh
本文出自 “騎豬去旅行” 部落格,請務必保留此出處http://songqinglong.blog.51cto.com/7591177/1700670
keepalived + mysql主從