HighGo Database集羣版數據庫是經過高可用管理工具REPMGR 對數據庫集羣進行管理。REPMGR 管理工具包括repmgr,repmgrd 兩個命令,其中repmgr命令主要用來對節點註冊repmgr服務,執行克隆基礎備份,提高備節點爲主節點,Follow備節點到新主節點等,repmgrd命令主要用來啓動守護進程對集羣狀態進行監控,本文主要介紹hg_repmgr主備切換方式。node
1、自動切換數據庫
Repmgr可能是經過repmgrd守護進程對集羣狀態進行監控來自動完成相應的管理。在如下幾個場景中,repmgr集羣系統會完成主備節點的自動切換。服務器
①主節點斷網網絡
當主節點斷網後(網線被拔掉或者網卡壞掉),備節點在嘗試N(經過 hg_repmgr 配置文件reconnect_attempts參數決定)次鏈接主服務器後若是仍是沒有鏈接上,則會有一次failover的過程,此時Repmgr集羣管理系統會選舉一個備節點提高爲主節點服務器(虛擬IP也會隨着漂移到該新主節點上),隨後其餘備節點會Follow到該新主節點上,此時再把原主節點網絡恢復以後,原主節點會降級爲備節點從新rejoin到新的集羣系統中。工具
②主節點斷電url
當主節點斷電時,若是不能及時從新啓動,則其餘備節點會提高爲新主節點,該原主節點會自動降級爲備節點rejoin到新集羣裏。spa
③手動中止主節點.net
當手動中止主節點時,節點在嘗試N(經過hg_repmgr配置文件reconnect_attempts參數決定)次鏈接主服務器後若是仍是沒有鏈接上,則會有一次failover的過程,此時Repmgr集羣管理系統會選舉一個備節點提高爲主節點服務器(虛擬IP也會隨着漂移到該新主節點上),隨後其餘備節點會Follow到該新主節點上,此時再把原主節點網絡恢復以後,原主節點會降級爲備節點從新rejoin到新的集羣系統中。3d
2、手動切換blog
若是集羣有人工干預或人工誤操做致使的停庫等行爲,此時Repmgr集羣管理系統可能就不能進行自動的管理工做,如今將可能發生的狀況做出說明,能夠在關閉repmgrd守護進程的基礎上進行手動切換。
一、promote-follow-rejoin
當主節點故障後,可以使用 repmgr standby promote命令將當前服務器上的某個備節點提高爲主節點。
①停掉主節點數據庫模擬主節點故障:
pg_ctl stop
②因爲主節點的數據庫已經故障,沒法查詢集羣狀態。在備節點查看集羣當前狀態:
repmgr cluster show
③將 node2 提高爲主節點:
repmgr standby promote
④查看當前集羣狀態:
此時node1故障,node2提高爲primary,node3仍爲 standby,可是其upstream 爲 node1,須要手動執行 follow 命令使其跟隨新主 node2。
⑤在 node3 上執行 follow
命令: repmgr standby follow
⑥查看集羣狀態:
repmgr cluster show
⑦在原主 node1 上執行:
repmgr node rejoin -d 'host=node2 user=hgrepmgr dbname=hgrepmgr' --force-rewind --verbose
更多詳細信息請登陸【瀚高技術支持平臺】查看https://support.highgo.com/#/index/docContentHighgo/a6aca66c03c83400