您好,登錄后才能下訂單哦!
本篇文章為大家展示了postgresql 中如何使用keepalived的方式進(jìn)行IP的切換,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
關(guān)于IP 切換的方法,有不少,但還是愿意從簡單的方式來,這里高可用涉及的問題有兩個 1 主機的關(guān)閉 2 PostgreSQL 服務(wù)DOWN ,至于怪異的一些例如PG 服務(wù)在,但無響應(yīng),這樣的問題,不在考慮的范圍內(nèi)。
以下的方案僅僅適合雙機方案(如果是三臺機器,也可以仿照MHA 中priority,調(diào)整其中一臺不參加切換)
這里使用的是keepalived的方式進(jìn)行IP 的切換,之前幾期是有包含repmgrd 自動切換從到主的方式,所以剩下的就是IP的切換問題。原因倆字,方便。
keepalived 的安裝和配置這里就不講了,主要的原理畫一個圖
就是主和從進(jìn)行切換,而這里的witness可以不要,主要還是看需求(如果不知道,可以看前幾期)。廢話少說,以下幾點是需要注意的
1 POSTGRESQL.CONF 監(jiān)聽地址要怎么設(shè)
2 當(dāng)主機失敗后,又啟動了,怎么辦的問題
問題 1 當(dāng)然listen 要設(shè)置成 0.0.0.0 而不是本機的IP 了
問題 2 當(dāng)然不能失敗的主機啟動后就搶回VIP,那正常工作的新主怎么辦,更可怕的是那數(shù)據(jù)的一致性這個問題就要出問題,這可是不能馬虎的,否則離,被離職就不遠(yuǎn)了。
處理這個問題就需要 keepalived 要設(shè)置 nopreempt 防止失敗的主,再次啟動后,搶占VIP,另外兩個KEEPALIVED.conf中都要設(shè)置成 backup的狀態(tài),通過priority 來判斷當(dāng)前那個是主,另外priority 之間的差距不要設(shè)置的太大,否則你就可能會等待一段時間才能VIP 切換,當(dāng)然很可能由于VIP 切換過快,導(dǎo)致 regmgr 還未將從庫promote ,程序可能會報錯,但這總比下面的情況要好,例如主庫失敗,又重啟了,但你的promote 已經(jīng)做完,這時如果VIP 沒有切換,則數(shù)據(jù)就會出現(xiàn)不一致,所以VIP 切換還是快點好,哪怕promote 沒有做完。
下面是一些KEEPALIVED 的配置
下面我們就做一下,看看這樣靈不靈
1 目前有 21 22 兩臺機器 ,VIP 23
目前主庫是在22上,關(guān)掉22的POSTGRESQL 的服務(wù),等待REPMGRD 切換主從,于此同時通過KEEPALIVED來檢測 PG的服務(wù),然后進(jìn)行切換IP 的工作。
1 正常狀態(tài) 21 從庫
2 關(guān)閉 22 ,22 已經(jīng)無法連接
3 查看當(dāng)前的主從是否已經(jīng)切換,IP是否切換了
已經(jīng)切換了,主從,21變?yōu)榱酥鲙?,IP 也在后面進(jìn)行了切換。
這樣做的優(yōu)點,
搭建簡單,部署方便,可以應(yīng)付大面積的高可用需求。
這樣做的缺點
部分地方做的不嚴(yán)謹(jǐn),需要進(jìn)行調(diào)試和掌握相關(guān)的技巧。
上述內(nèi)容就是postgresql 中如何使用keepalived的方式進(jìn)行IP的切換,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。