1. 程式人生 > >OceanBase資料庫高可用及容災方案詳細介紹

OceanBase資料庫高可用及容災方案詳細介紹

1     前言

眾所周知,作為生產系統中極為關鍵的核心軟體,資料庫產品的高可用性一直是使用者極為關注的功能點。尤其是在金融這樣一個特殊的領域裡,無論是從監管的要求來看,還是從業務需求本身來看,都需要提供24*7持續不間斷的服務,這就對金融行業中資料庫產品的高可用性提出了很高的要求,不但需要應對個別硬體故障的情況,還必須能夠應對機房整體故障和城市災難等極端情況,保證資料庫在各種意外情況下都能持續提供服務,即具備機房級容災能力和城市級容災能力。本文的主要目的,是總結和回顧一下傳統資料庫產品常用的高可用及容災方案,並向讀者介紹一下以OceanBase為代表的分散式資料庫常用的方案,希望能夠起到拋磚引玉的作用,引發讀者關於新型分散式架構下高可用及容災方案的思考。

2     背景介紹

首先,我們回顧一下傳統的關係型資料庫產品(如Oracle、DB2等)常用的高可用及容災技術。我們知道,傳統資料庫產品最初都是單點架構,並不具備高可用設計,更多的是基於高階硬體產品滿足“硬體可靠”的假設。隨著時間的推移,傳統資料庫產品先後推出了採用“主從複製”架構的高可用方案,比如Oracle的Data Guard技術和DB2的HADR技術,其主要思路是:在原有的單資料庫節點(主節點)之外再增加一個對等的資料庫節點(從節點),通過資料庫層面的複製技術(通常是日誌複製)將主節點產生的資料實時複製到從節點;正常情況下從節點不提供對外服務,當主節點發生故障時,在從節點上執行“切主”動作將從節點變成主節點,繼續提供服務。在主從節點的部署方式上,除了本地單機房部署外,往往也支援同城災備部署和異地災備部署,因此也就具備了機房級容災和城市級容災的能力。很多新興的資料庫產品(如MySQL)也是採用“主從複製”模式來實現高可用及容災特性。

69faf2ee628f54147525e66bb646bc9380786b6d

除了資料庫層面的主從複製技術之外,還有一些在底層硬體上實現的高可用方案,比如在主機層面用HACMP技術以應對主機故障,或者在儲存層面採取複製技術(比如FlashCopy)來提供資料冗餘等。這些技術雖然也可以用來實現高可用和容災能力,但和應用的整合度不高,會使災難切換方案變得很複雜,並且會有相對較長的故障恢復時間(RTO),所以通常不是資料庫使用者的首選。

原文連結