點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!!!
keepalived安裝
yum -y install keepalived
默認配置在 /etc/keepalived下
systemctl start keepalived //啟動keepalived
systemctl enable keepalived //加入開機啟動keepalived
systemctl restart keepalived //重新啟動keepalived
systemctl status keepalived //查看keepalived狀態
10.xx.xx.30
配置keepalived
修改默認配置文件:
! Configuration File for keepalived
#指定mysql服務檢測腳本
vrrp_script chk_mysql {
script "/etc/keepalived/scripts/chk_mysql.sh" #腳本路徑
interval 2 #腳本檢測頻率
weight -5 #腳本執行返回值 =0 ,優先級不變。!=0 時優先級 -5
fall 3 #如果連續三次檢測失敗,認為節點服務不可用
rise 2 #如果連續2次檢查成功則認為節點正常
}
#監測mysql 是否是master
vrrp_script chk_mysql_master {
script "/etc/keepalived/scripts/chk_mysql_master.sh"
interval 2
weight 10 #腳本執行返回值 =0 ,優先級加 10。!=0 時優先級不變。
}
vrrp_instance VI_1 {
state MASTER #指定實例初始狀態,實際的MASTER和BACKUP是選舉決定。
interface eth0 #指定實例綁定的網卡。
virtual_router_id 88 #設置VRID標記(0..255)
priority 100 #設置優先級,優先級高的會被競選為Master
advert_int 1 #檢查的時間間隔,默認1s
authentication { #節點間的認證,所有的必須一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.xx.xx.24/24
}
track_script { #指定前面腳本的名字
chk_mysql
chk_mysql_master
}
}
三個配置文件的區別只有priority 權重,節點1-3分別為100,98,96。通過其中兩個腳本判斷MySQL狀態以及MGR主節點在哪臺服務器上,提升權重。權重的提升合理分配,確保三個服務器每臺提升權重后,均可以權重最高,實現VIP漂移。
腳本一:
#!/bin/bash
counter=`netstat -tulnp |grep -w :::3306 |wc -l`
if [ $counter -eq 0 ]; then
systemctl stop keepalived
fi
監測MySQL服務的狀態。
腳本二:
#!/bin/bash
source ~/.bash_profile
source /etc/profile
PID1=`mysql -uroot -p1qsx@WAZ -S /home/my3306/run/mysql.sock -e "SELECT * FROM performance_schema.replication_group_members WHERE MEMBER_ID = (SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME= group_replication_primary_member)" 2>/dev/null |awk NR==2{print}|awk -F" " {print $2}`
PID2=`mysql -uroot -p1qsx@WAZ -S /home/my3306/run/mysql.sock -e "select @@global.server_uuid" 2>/dev/null |awk NR==2{print}`
RES=$(echo $PID1 | grep "${PID2}")
if [[ ${RES} != "" ]]; then exit 0; fi
exit 1
監控當前節點uuid是否為主節點的uuid,是的話就提升權重,否則權重不變。
我的環境腳本2在判斷兩個變量是否相同時,沒有進入判斷邏輯,返回值始終為0,在腳本里添加引用了環境變量,就正常了。
腳本均需要添加執行權限:
chmod +x chk_mysql*
驗證IP漂移
三個節點啟動keepalived后,檢查VIP(24)在1節點(25)上,因為1節點權重最高,并且1節點為主庫。
當前數據庫節點狀態:
模擬主節點宕機:
此時檢查MGR集群,發現主庫是unreachable狀態,此時MySQL集群還未發生重新選舉主節點。
觀察VIP,發現已經漂移到節點2上去了,因為此時2節點的權重高,所以在MySQL未選取出新主之前,VIP漂移到了2節點。
等MySQL選舉完后,觀察節點信息發現3節點成為主節點:
隨后再觀察VIP,發現識別到了新的主節點3節點,并提升了權重,VIP漂移到了3節點上:
最終VIP切換成功至主節點宕機后新選取的主節點上。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129210.html
摘要:前提配置環境變量準備服務器或者虛擬機,以及環境,這個是必須的前提啊,我相信你可以的。關掉主機,主機監控到無后,自動切換 前提-配置java環境變量 準備centos服務器或者虛擬機,以及JAVA環境,這個是必須的前提啊,我相信你可以的。 tomcat # 下載 curl http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bi...
閱讀 1347·2023-01-11 13:20
閱讀 1686·2023-01-11 13:20
閱讀 1134·2023-01-11 13:20
閱讀 1861·2023-01-11 13:20
閱讀 4104·2023-01-11 13:20
閱讀 2708·2023-01-11 13:20
閱讀 1386·2023-01-11 13:20
閱讀 3599·2023-01-11 13:20