對于MySQL 的高可用性:Keepalived 雙主熱備
發表時間:2023-07-10 來源:明輝站整理相關軟件相關文章人氣:
[摘要]通常說的「雙機熱備」是指兩臺機器都在運行,但并不是兩臺機器都同時在提供服務。當提供服務的一臺出現故障的時候,另外一臺會馬上自動接管并且提供服務,而且切換的時間非常短。Keepalived的工作原理是...
通常說的「雙機熱備」是指兩臺機器都在運行,但并不是兩臺機器都同時在提供服務。當提供服務的一臺出現故障的時候,另外一臺會馬上自動接管并且提供服務,而且切換的時間非常短。
Keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虛擬路由冗余協議。在VRRP中有兩組重要的概念:VRRP路由器和虛擬路由器,主控路由器和備份路由器。
VRRP路由器是指運行VRRP的路由器,是物理實體,虛擬路由器是指VRRP協議創建的,是邏輯概念。一組VRRP路由器協同工作,共同構成一臺虛擬路由器。 Vrrp中存在著一種選舉機制,用以選出提供服務的路由即主控路由,其他的則成了備份路由。當主控路由失效后,備份路由中會重新選舉出一個主控路由,來繼續工作,來保障不間斷服務。
環境描述:
OS:Ubuntu16.04
MASTER:172.16.29.205
BACKUP:172.16.29.197
VIP:172.16.29.206
[root@masterr ~]# vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
test@sina.com
}
notification_email_from admin@test.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MYSQL_HA #標識,雙主相同
}
vrrp_instance VI_1 {
state BACKUP #兩臺都設置BACKUP
interface eth0
virtual_router_id 51 #主備相同
priority 100 #優先級,backup設置90
advert_int 1
nopreempt #不主動搶占資源,只在master這臺優先級高的設置,backup不設置
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.29.206
}
}
virtual_server 172.16.29.206 3306 {
delay_loop 2
#lb_algo rr #LVS算法,用不到,我們就關閉了
#lb_kind DR #LVS模式,如果不關閉,備用服務器不能通過VIP連接主MySQL
persistence_timeout 50 #同一IP的連接60秒內被分配到同一臺真實服務器
protocol TCP
real_server 172.16.29.205 3306 { #檢測本地mysql,backup也要寫檢測本地mysql
weight 3
notify_down /etc/keepalived/mysql.sh #當mysq服down時,執行此腳本,殺死keepalived實現切換
TCP_CHECK {
connect_timeout 3 #連接超時
nb_get_retry 3 #重試次數
delay_before_retry 3 #重試間隔時間
}
}
[root@masterr ~]# vi /usr/local/keepalived/mysql.sh
#!/bin/bash
sudo service keepalived stop
[root@masterr ~]# chmod +x /usr/local/keepalived/mysql.sh
[root@masterr ~]# /etc/init.d/keepalived start
backup服務器只修改priority為90、nopreempt不設置、real_server設置本地IP。
3、測試高可用性
1.通過Mysql客戶端通過VIP連接,看是否連接成功。
2.停止master這臺mysql服務,是否能正常切換過去,可通過ip addr命令來查看VIP在哪臺服務器上。
3.可通過查看/var/log/messges日志,看出主備切換過程
4.master服務器故障恢復后,是否主動搶占資源,成為活動服務器。
本文講解了利用Keepalived ,讓MySQL 實現高可用性,更多相關推薦請關注php中文網。
相關推薦:
使用php寫出幾種常見的排序算法程序
PHP如何判斷是否為AJAX請求?
php程序報date()警告的處理的解決方法
以上就是關于MySQL 的高可用性:Keepalived 雙主熱備的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。