天天看點

OB有問必答 | 分布式資料庫有哪些常用的高可用及容災方案?

OceanBase資料庫從誕生之初,就利用Paxos協定在底層實作了多副本資料一緻性,具有上述“RPO=0、低RTO(通常在30s以下)、故障時自動切換”的優勢。而經過多年實際應用場景的曆練後,尤其是像支付寶、淘寶、網商銀行這種高并發、高通路量、24*7持續交易場景的磨練,OceanBase資料庫已經摸索出一套完整的、經過實踐檢驗的高可用及容災方案。下面我們就結合OceanBase資料庫的實踐經驗,向大家介紹一下OceanBase及分布式資料常用的一些高可用及容災方案。

其中最核心的思想就是要充分利用分布式多副本資料一緻性協定的原理,并結合各種意外情況的具體特點(個别硬體故障?機房級災難?還是城市級災難?),找到對應的解決之道。如果客戶的基礎設施條件有限,不能滿足分布式多副本資料一緻性協定的部署要求,那麼可以考慮引入其它方式,比如叢集間資料複制。

下面的表格中,我們總結了幾種方案友善讀者參考:

OB有問必答 | 分布式資料庫有哪些常用的高可用及容災方案?

大體來講,針對不同的具體情況,下面幾種方案都滿足了“RPO=0、低RTO、故障時自動切換”的要求,而且在技術上沒有明顯的缺陷,應該作為高可用及容災方案的首選:

• 單機房3副本方案如果沒有任何機房級容災或者城市級容災的要求,隻有最簡單的高可用要求,那麼這種簡單易行的部署方案是再好不過了。

• 同城3機房3副本方案如果有機房級容災的要求,但沒有城市級容災的要求,那麼這種方案是最佳選擇。

如果使用者隻有同城2機房而沒有建設第3機房,可以考慮在同城内租借一個機房(甚至隻租借部分機櫃)來滿足3機房的條件,并可以利用OceanBase的“日志副本”技術降低部署難度。

• 3地3機房5副本方案如果既有機房級容災的要求,也有城市級容災的要求,那麼這種方案能全部滿足,提供最進階别的高可用性。

如果使用者的基礎設施條件有限,無法滿足上面幾種方案的要求,但同時又要求機房級容災能力或者城市級容災能力,應考慮“叢集間資料複制”方案。

最後,也必須意識到技術在不斷進步,OceanBase在不斷進步,使用者的IT建設也在不斷進步。今天的最佳方案也許明天就能找到更好的替代者,是以我們必須以發展的眼光持續進化我們的技術方案,才能讓OceanBase的使用者在未來有更多更好的選擇。在這個過程中,我們也非常希望和業界的朋友及廣大使用者有更多的技術交流和思想碰撞,共同推進分布式資料庫技術下高可用及容災方案的發展。