本文分享自華為雲社區《GaussDB跨雲容災:實現跨地域的資料庫高可用能力》,作者:GaussDB 資料庫。 金融、銀行業等對數據的安全有著較高的要求,同城容災建設方案,在絕大多數場景下可以保證業務數據的安全性,但是在極端情況下,如遇不可抗力因素等,要保證數據的安全性,就需要採取跨地域的容災方案。 ...
本文分享自華為雲社區《GaussDB跨雲容災:實現跨地域的資料庫高可用能力》,作者:GaussDB 資料庫。
金融、銀行業等對數據的安全有著較高的要求,同城容災建設方案,在絕大多數場景下可以保證業務數據的安全性,但是在極端情況下,如遇不可抗力因素等,要保證數據的安全性,就需要採取跨地域的容災方案。
GaussDB容災方案
跨地域容災,通常是指主備數據中心距離在200KM以上,主機房發生極端災難的情況下,備機房數據仍具備能繼續提供服務的能力。在跨地域機房的建設上,大部分客戶採用不同的雲管平臺來建設跨地域的數據中心,也有部分客戶採用同一個雲管平臺的跨region能力來進行建設。當前,GaussDB提供瞭如下多種容災方案,用於應對多樣的客戶化場景:
1.採用單集群多副本的模式進行跨地域機房部署。
該方案採用單集群多副本的容災方案,通過將集群內不同的副本部署在不同的機房來實現跨地域的容災能力,該部署方案有實現簡單、成本較低、容災的RPO=0等優點。但是單集群多副本的容災方案依賴主備機房之間的距離,地理距離的增大會影響到生產服務的性能,而且單集群容災無法防禦集群內部組件級的故障。
2.同城雙集群容災。
此方案使用同一個管控雲平臺、雙region的容災方案,該方案可以很好地防護集群內組件級的故障,主備集群是公用同一個雲平臺進行容災管理的。當主集群連同雲平臺受損後,此時無法從雲管控平臺對災備集群進行一鍵故障拉起,需要底層資料庫層面執行災備庫拉起的命令,會增加業務恢復的難度。
3.在不同的雲管平臺下,採用雙集群的方案來保證主集群性能以及故障域隔離,管理面之間調度依賴。
該方案針對使用同一個雲管控平臺的弊端,將主備集群分在兩個雲管控平臺,當發生不可控因素導致主集群連同起所在的雲管控平臺同時故障的場景下,可以單對災備集群所在的雲管控平臺下發容災升主,從而快速將災備庫拉起接管業務。
GaussDB跨地容災技術實現
GaussDB容災方案突破了容災能力對雲管控平臺的依賴,通過統一GaussDB主備集群間容災交互的標準,實現了業務實例和容災實例在不同的雲管控平臺分別管理的方案。
在最大限度保證資料庫業務容災能力的前提下,簡化了跨雲容災的運維難度,不受雲管平臺的限制。當業務因日常演練要求或運行故障等緊急突發事件導致業務中斷後,通過多災備雲建立的完整資料庫網路計算資源,可在分鐘級內完成容災集群的拉起實現日常演練或故障場景下的業務接管,保障業務的高可用。
技術架構圖
GaussDB容災基於內核的流式複製能力,搭建階段通過數據建立機制將主集群上的數據全量同步到災備端,同時將主集群的增量xlog日誌同步複製到災備集群,等待災備集群將主集群全量日誌回放完成後執行主集群同步來的xlog日誌,保證主備集群的數據最終一致,從而實現容災實例對主集群資料庫的實時容災能力。
GaussDB跨地容災業務流程
在同雲及跨雲場景下,架構統一的容災能力,支持容災搭建、容災倒換、容災升主以及容災解決流程,彌補產品空白,降低客戶跨雲成本。
1.容災搭建
進入“雲資料庫 GaussDB”,選擇“容災管理”,點擊“創建容災任務”。
選擇主實例列表和輸入災備實例的容災IP,資料庫名稱密碼後確認開啟容災搭建。其中災備實例容災IP在災備實例的實例詳情頁獲取。
2.容災關係搭建完成後,可以對容災信息進行實時監控,包括容災狀態、RPO、RTO等關鍵指標,方便用戶監控容災狀態
3.容災主備切換
在容災搭建完成後,可以在主集群或者是災備集群上點擊主備切換完成容災倒換。容災主備倒換可用於用戶的容災演練場景,提供了主集群降備,容災集群升主的能力,保障了容災主備集群的數據一致性。
容災主備切換時,首先會檢查主備集群均是正常且主備集群容災的xlog流式複製正常,當開始主備集群角色互換時會將主集群設置為只讀,暫停主集群對外提供的寫服務。待災備集群將主的xlog日誌回放完成後同步進行主備集群角色切換。此時原災備集群升為主集群,原主集群降為災備集群,並且重新建立容災關係之間的xlog日誌複製。
4.容災故障切換
容災關係正常建立後,如主集群發送故障需要拉起災備集群對外提供服務的時候,在災備集群所在的容災管理頁面點擊容災升主完成容災切換。容災故障切換用於主集群故障的場景,將容災集群快速拉起,保障跨地域的業務高可用。