OceanBase 雲資料庫叢集執行個體可以通過添加備執行個體,組成一主多備的叢集網路,主備執行個體之間保持資料同步,進一步提升資料庫的高可用能力。
原理介紹
主備執行個體架構為一主(Primary)多備(Physical_Standby),備執行個體不支援級聯添加備執行個體。主備執行個體之間通過日誌非同步複製保持資料同步,日誌非同步複製不會影響主執行個體的穩定性和效能。
當主執行個體出現計劃內或計劃外(多數派副本故障)的不可用情況時,備執行個體可以接管服務,並且提供無損切換(RPO = 0)和有損切換(RPO > 0)兩種容災能力,最大限度降低服務的停機時間。詳情參見 主備執行個體切換。主備執行個體均可提供讀服務,只有主執行個體可以提供寫服務。

流程圖說明:
步驟 | 說明 |
1 | 使用者的 APP(業務系統)向主叢集的資料庫節點(運行 OBServer 進程的伺服器)寫入/讀取資料。 |
2 | 主叢集(生產叢集)的資料寫入產生 REDO 日誌。 |
3 | 主叢集自動向備叢集通過日誌非同步複製的方式傳輸 REDO 日誌。 |
4 | 備叢集(主叢集的資料備份)的資料庫節點接收 REDO 日誌並回放資料。 |
5 | 使用者的 APP(業務系統)從備叢集的資料庫節點讀取資料。 |
使用情境
主備執行個體的使用情境主要包括以下兩種:
同城容災
阿里雲上的部分地區僅提供兩個可用性區域,OceanBase 單一實例三副本無法提供機房(可用性區域)層級的容災能力。在這種情境下,可以通過在兩個可用性區域建立主備執行個體,實現跨機房的資料庫高可用,當一個機房出現故障時,只需要將業務手動切換到備執行個體即可。
異地容災
如果業務部署在多個地區,可以通過在多個地區建立主備執行個體,實現跨地區的資料庫高可用,當一個地區出現故障時,只需要將業務手動切換到備執行個體即可。
主備執行個體切換耗時約 5 分鐘,切換過程中,可能會出現連結閃斷。建議在業務低穀期執行主備切換,同時建議使用連結池等技術手段確保業務具備自動重連機制。
主備執行個體巨集指令清單
您可以根據業務需要建立備執行個體,並可對主備執行個體分別進行以下操作:
執行個體類型 | 操作 |
主執行個體 | 可以為主執行個體建立一個或多個備執行個體,詳情參見 建立備執行個體。 |
備執行個體 | 主執行個體的租戶同步到備執行個體之後,需要手動為備執行個體的租戶添加主地址,詳情參見 添加備執行個體租戶主地址。 |
在主備容災情境,可以將備執行個體切換為主執行個體,保障資料的一致性和業務的可用性,詳情參見 主備執行個體切換。 | |
在業務拆分等情境,可以將備執行個體從主備執行個體情境變更為兩個獨立的叢集執行個體,提搞資源使用率,詳情參見 解耦備執行個體。 |