分析Oracle在雲上實現高可用的幾種實現方式

  • 2019 年 10 月 6 日
  • 筆記

針對Oracle遷移上雲項目,雲提供給用戶的物理機上載入有三張網卡供用戶使用,一張用於跑業務,另外兩張可以用於心跳線網路。另外,存儲網路是單獨的網口,在建設時已由服務商做好配置,不含在這三張網卡內。基於公有雲技術,為了組建資源池內部管理控制專網,因此現市面上公有雲提供商的IPMI埠,均不能提供出來用於對外訪問。

目前雲上實現Oracle資料庫高可用的技術有:Oracle Rac(單實例)、Rose HA第三方軟體(單實例)及Keepalived(單實例)、Data Guard(多實例)。以下列舉出實現方式概括。

一、Oracle Rac

RAC單個實例,可以實現主備、集群負載功能,其中某一台down機,不影響整體服務,不存在故障切換時間,可以提供高性能服務;存儲共享;硬體成本低。在雲上一般建議採用物理機承載。

二、第三方軟體HA

HA(High Available)即由兩台電腦組成並對外提供一組相同的服務,也叫做一主一備模式。正常情況下由主伺服器提供服務,備伺服器處於待機備用,備機可以隨時接替主伺服器的工作。也就是當主伺服器宕機或所提供的服務不可用時,備用伺服器會主動激活並且替換主伺服器繼續提供服務,這時主伺服器上的服務資源包括網路(IP)、存儲、服務(Web/資料庫)就會轉移到備機接管,從而提供不間斷的服務。基於此,便可以將伺服器的宕機時間減少到最低,對業務實現不中斷或短暫中斷。HA雙機熱備可以提供高可用性,保證業務的持續穩定運行,可以實現自動快速故障轉移,存在短暫的切換時間(10-30s),一般用於關鍵性業務。存儲共享。一般項目載入的實現HA的軟體有很多種,有商業的Rose HA方案,也可以使用開源的高可用軟體如keepalived搭建實現HA方案。

2.1 採用Keepalived方案

Keepalived是基於VRRP(Virtual Router RedundancyProtocol,虛擬路由器冗餘協議)協議的一款高可用軟體,是一個類似於layer3, 4 & 5交換機制的軟體,也就是我們平時說的第3層、第4層和第5層交換。Keepailived有一台主伺服器和多台備份伺服器,在主伺服器和備份伺服器上面部署相同的服務配置,使用一個虛擬IP地址對外提供服務,當主伺服器出現故障時,虛擬IP地址會自動漂移到備份伺服器。Keepalived是自動完成,不需人工干涉。

Keepalived可以基於腳本進行網路、應用狀態的檢測,理論上功能很強大。

2.2 採用Rose HA方案

Rose HA是美國ROSEDatasystem 公司出品的新一代高可用性軟體,它可以將Linux伺服器和Windows 伺服器組成集群系統,並對伺服器進行監控、故障檢測、故障恢復,保護運行伺服器中的關鍵性數據服務和網路服務。對於在客戶機/伺服器環境中的網路及資料庫中集成的高可用需求,ROSEHA提供了非常靈活而且適用的解決方案。

Rose HA 高可用業務架構圖

三、基於DataGuard實現雙實例,主從備份

DataGuard採用重做日誌複製技術,對主業務數據進行實時的非同步同步備份,有一主一備、一主多備模式,一般常用於容災(異地備份、災難恢復);存儲獨立、數據完整備份;備機可以做數據分析、報表統計等;主備自由切換,能實現自動快速故障轉移;備用角色強制轉換為主用角色會破環Data Guard架構;設計複雜、維護難度大。

採用該雙實例方案,理論上可以實現資料庫的讀寫分離,以及主備切換,是實現資料庫集群高並發的最佳方案。