centos MySQL 双机_CentOS利用Keepalived构建双主MySQL+双机热备
之前的文章介紹了如何配置MysqL雙主互備,見http://www.linuxidc.com/Linux/2013-05/83784.htm
這里介紹如何配合前者實(shí)現(xiàn)Keepalived雙機(jī)熱備
系統(tǒng)環(huán)境:CentOS6.3 x64
MysqL版本:MysqL-5.6.10
Keepalived版本:keepalived-1.2.7
MysqL-VIP:192.168.7.253
MysqL-master1:192.168.7.201
MysqL-master2:192.168.7.249
1.在MysqL-master1:192.168.7.201服務(wù)器上keepalived安裝及配置
編譯安裝,實(shí)際以本機(jī)kernel版本為準(zhǔn)
# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
# tar zxvf keepalived-1.2.7.tar.gz
# cd keepalived-1.2.7
# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-
279.el6.x86_64
# make && make install
新建一個(gè)配置文件,默認(rèn)keepalived啟動(dòng)會(huì)去/etc/keepalived目錄下尋找配置文件
# mkdir /etc/keepalived
# vi /etc/keepalived/keepalived.conf
------------------
global_defs {
notification_email {
lzyangel@126.com
}
notification_email_from lzyangel@126.com
smtp_server stmp.126.com
smtp_connect_timeout 30
router_id MysqL-ha
}
vrrp_instance VI_1{
# 兩臺(tái)配置此處均是BACKUP
state BACKUP
# 注意網(wǎng)卡接口
interface eth0
virtual_router_id 51
# 優(yōu)先級(jí),另一臺(tái)改為90
priority 100
advert_int 1
# 不主動(dòng)搶占資源
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.7.253
}
}
virtual_server 192.168.7.253 3306 {
# 每個(gè)2秒檢查一次real_server狀態(tài)
delay_loop 2
# LVS算法
lb_algo wrr
# LVS模式
lb_kind DR
# 會(huì)話保持時(shí)間
persistence_timeout 60
protocol TCP
real_server 192.168.7.201 3306 {
weight 3
# 檢測(cè)到服務(wù)down后執(zhí)行的腳本
notify_down /etc/rc.d/keepalived.sh
TCP_CHECK {
# 連接超時(shí)時(shí)間
connect_timeout 10
# 重連次數(shù)
nb_get_retry 3
# 重連間隔時(shí)間
delay_before_retry 3
# 健康檢查端口
connect_port 3306
}
}
----------------------
編寫檢測(cè)服務(wù)down后所要執(zhí)行的腳本
# vi /etc/rc.d/keepalived.sh
-------------
#!/bin/sh
pkill keepalived
-------------
# chmod +x /etc/rc.d/keepalived.sh
注:此腳本是上面配置文件notify_down選項(xiàng)所用到的,keepalived使用notify_down選項(xiàng)來檢查real_server的服務(wù)狀態(tài)。
當(dāng)發(fā)現(xiàn)real_server服務(wù)故障時(shí),便觸發(fā)此腳本.
我們可以看到,腳本就一個(gè)命令:
通過pkill keepalived強(qiáng)制殺死keepalived進(jìn)程,從而實(shí)現(xiàn)了MysqL故障自動(dòng)轉(zhuǎn)移.
另外,我們不用擔(dān)心兩個(gè)MysqL會(huì)同時(shí)提供數(shù)據(jù)更新操作,因?yàn)槊颗_(tái)MysqL上的keepalived的配置里面只有本機(jī)MysqL的IP+VIP,而不是兩臺(tái)MysqL的IP+VIP.
啟動(dòng)keepalived
# /usr/local/keepalived/sbin/keepalived -D
查看連接狀態(tài)
# ps -aux | grep keepalived
返回:
---------------
root 25348 0.0 0.0 36792 720 ? Ss 07:15 0:00
/usr/local/keepalived/sbin/keepalived -D
root 25349 0.5 0.1 40968 2016 ? S 07:15 0:00
/usr/local/keepalived/sbin/keepalived -D
root 25350 0.0 0.1 40968 1340 ? S 07:15 0:00
/usr/local/keepalived/sbin/keepalived -D
--------------------
測(cè)試
找一臺(tái)局域網(wǎng)PC,然后去ping MysqL的VIP,這時(shí)候MysqL的VIP是可以ping的通的
停止MysqL服務(wù),看keepalived健康檢查程序是否會(huì)觸發(fā)我們編寫的腳本,去kill掉keepalived進(jìn)程
# service MysqLd stop
# ps -aux | grep keepalived
無返回結(jié)果
2.在MysqL-master2:192.168.7.249服務(wù)器上keepalived安裝及配置
編譯安裝,實(shí)際以本機(jī)kernel版本為準(zhǔn)
# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
# tar zxvf keepalived-1.2.7.tar.gz
# cd keepalived-1.2.7
# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-
279.el6.x86_64
# make && make install
新建一個(gè)配置文件,默認(rèn)keepalived啟動(dòng)會(huì)去/etc/keepalived目錄下尋找配置文件
# mkdir /etc/keepalived
# vi /etc/keepalived/keepalived.conf
------------------
global_defs {
notification_email {
lzyangel@126.com
}
notification_email_from lzyangel@126.com
smtp_server stmp.126.com
smtp_connect_timeout 30
router_id MysqL-ha
}
vrrp_instance VI_1{
# 兩臺(tái)配置此處均是BACKUP
state BACKUP
# 注意網(wǎng)卡接口
interface eth0
virtual_router_id 51
# 優(yōu)先級(jí),另一臺(tái)改為90
priority 90
advert_int 1
# 不主動(dòng)搶占資源
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.7.253
}
}
virtual_server 192.168.7.253 3306 {
# 每個(gè)2秒檢查一次real_server狀態(tài)
delay_loop 2
# LVS算法
lb_algo wrr
# LVS模式
lb_kind DR
# 會(huì)話保持時(shí)間
persistence_timeout 60
protocol TCP
real_server 192.168.7.249 3306 {
weight 3
# 檢測(cè)到服務(wù)down后執(zhí)行的腳本
notify_down /etc/rc.d/keepalived.sh
TCP_CHECK {
# 連接超時(shí)時(shí)間
connect_timeout 10
# 重連次數(shù)
nb_get_retry 3
# 重連間隔時(shí)間
delay_before_retry 3
# 健康檢查端口
connect_port 3306
}
}
----------------------
編寫檢測(cè)服務(wù)down后所要執(zhí)行的腳本
# vi /etc/rc.d/keepalived.sh
-------------
#!/bin/sh
pkill keepalived
-------------
# chmod +x /etc/rc.d/keepalived.sh
啟動(dòng)keepalived
# /usr/local/keepalived/sbin/keepalived -D
# ps -aux | grep keepalive
至此配置完成,網(wǎng)站后臺(tái)只需要配置MysqL-VIP:192.168.7.253虛擬地址即可
這里實(shí)際連接的master數(shù)據(jù)庫,以哪臺(tái)master先開MysqL服務(wù)為準(zhǔn)。
當(dāng)master1:192.168.7.201 MysqL端口擋掉或者服務(wù)器異常關(guān)閉,keepalived會(huì)自動(dòng)跳轉(zhuǎn)到master2:192.168.7.249.
因?yàn)閮膳_(tái)數(shù)據(jù)庫的數(shù)據(jù)時(shí)同步的,用戶訪問的是MysqL-VIP:192.168.7.253虛擬地址,所以網(wǎng)站數(shù)據(jù)連接會(huì)無縫透明轉(zhuǎn)接到master2服務(wù)器,實(shí)現(xiàn)雙機(jī)熱備+數(shù)據(jù)同步功能。保證網(wǎng)站數(shù)據(jù)庫的實(shí)時(shí)可用性。
注:當(dāng)某一臺(tái)master服務(wù)器掛掉恢復(fù)后,需同時(shí)打開MysqL服務(wù)和keepalived服務(wù),保證另一臺(tái)服務(wù)器如果掛掉會(huì)無縫轉(zhuǎn)接。
所以建議MysqL與keeplived設(shè)置服務(wù)開機(jī)啟動(dòng)。
# chkconfig MysqLd on
# vi /etc/rc.local
---------------
/usr/local/keepalived/sbin/keepalived -D
總結(jié)
如果覺得編程之家網(wǎng)站內(nèi)容還不錯(cuò),歡迎將編程之家網(wǎng)站推薦給程序員好友。
本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡(luò)收集整理提供,作為學(xué)習(xí)參考使用,版權(quán)屬于原作者。
如您喜歡交流學(xué)習(xí)經(jīng)驗(yàn),點(diǎn)擊鏈接加入交流1群:1065694478(已滿)交流2群:163560250
總結(jié)
以上是生活随笔為你收集整理的centos MySQL 双机_CentOS利用Keepalived构建双主MySQL+双机热备的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超绝的收纳设计收纳设计方案
- 下一篇: 如何使用日剧社追日剧