資料庫叢集系統研究系列(2)-現存的資料庫的解決方案的原理解析

來源:互聯網
上載者:User

最近,因為在為客戶講述使用資料庫叢集的相關內容,研究市面上的有關技術和產品,以及MSSQL 內建的技術,接下來幾篇就為大家說說之前研究的一些結果,同時也發布一些整理的資料。
不少公司推出了針對資料庫的“叢集”解決方案,下面我們就簡要的介紹一下他們的一些實現的原理。

基於串列複製技術

串列複製技術,本來是用於資料複製和資料備份的,離人們熟悉的“資料庫叢集”的概念有一定的距離。但是由於電腦軟硬體技術和網路通訊技術的快速發展,使得利用這種概念和技術構成的“資料庫叢集”有了一定的可行性。此類叢集,又可以分兩類:

1.串列非同步複


 

20130312095046.png(30.77 K)2013/3/12 9:58:01

 

 

 

此種方式是非同步串列複製或日誌拷貝(Log Shipping)。主要資料庫完成交易處理後,產生交易處理日誌,日誌記錄通過FIFO 隊列,進入備份資料庫處理,從而得到備份資料。此種方式的缺陷在於:
a. 複製隊列溢出問題:主要資料庫是平行處理而日誌拷貝是串列的,因此備份資料庫處理日誌記錄也是串列的。因此,FIFO 隊列的溢出隨時可能發生。一旦發生,隊列必須重建,從而需要重建立立備份資料庫。此種方法對於一般客戶來講是不可行的。
b. 或者為了避免隊列溢出,必須保證主要資料庫處理事務的速度小於備份資料庫,這樣將嚴重束縛主要資料庫的效能發揮。
c. 由於日誌拷貝是非同步,主備資料庫不是即時一致。因此無法用備份資料庫作負荷均衡。
d. 由於主備資料庫永遠不一致, 主要資料庫一旦發生事故,就一定會遺失資料。在這種情況下,要麼需要手工恢複資料庫,這會消耗大量的人工成本,或者資料根本就不能恢複。

2.串列同步複製
此類叢集往往是由昂貴的專用軟硬體構成的,原理圖如下:


20130312095615.png(29.81 K)2013/3/12 9:58:01

 

 

此類系統採用專用的高速網路和軟體技術,將每個資料庫的請求,通過同步複製的方式,同步在主備兩台資料庫伺服器上執行正確後,才將結果返回給資料庫客戶。

此系統的特點是:
a. 主要資料庫被強迫與備份資料庫同步串列處理,因此效能受到限制。
b. 主備資料庫中任意一個出現問題,都會迫使交易處理交易復原,因此整個系統的可靠性比單機系統降低了一半。
c. 由於以上問題,這種備份方式只適用於近距離光纖網路(5 英裡)。
d. 專用系統造價昂貴,又加上述明顯缺陷,因此市場上很少被採用。

 

基於雙機容錯技術

從技術適應性的角度講,雙機容錯比較適合於無狀態應用,或者狀態資訊較少的應用程式切換,以此達到應用級的高可用性目的,其實並不適合於資料庫級的應用程式切換。

 

20130312100012.png(38.28 K)2013/3/12 10:01:09

 

 

此種結構往往是兩個伺服器共用一個磁碟陣列,這裡兩個伺服器共用一個虛擬IP 供資料庫客戶使用,形成一個單一的邏輯資料庫映象。

此種所謂的資料庫叢集的目的是,一旦主機系統出現問題,備份系統通過心跳機制的檢測,完成從主機系統到備份系統的切換,它有下列特點:

a. 此種高可用性解決方案只是無狀態系統(典型的如Web 服務器)的普通容錯切換思想在資料庫領域的應用。
b. 此系統本身只有一個單一的資料映象,資料儲存在共用的磁碟陣例上,因此共用的磁碟陣例成為了整個系統的單點錯誤源。
c. 由於是單一資料映象,因此必須採用通常的複製或備份方法擷取第二份資料,以保證資料的安全性。因此所有複製或備份方法的缺點,此類系統全部存在。
d. 主機系統和備份系統之間是沒有任何負載平衡關係的,在正常情況下,備份系統是閑置在那裡,因此對使用者來說是一種投資浪費。
e. 在錯誤切換的時候,往往存在切換時間長,而且更嚴重的是存在丟失使用者交易資料丟失的現象,結果導致系統被迫停止服務,或者需要人工修複資料,或者資料永遠找不回來。
f. 在錯誤切換的時候,有時候會發生備份系統的資料庫啟動不了的情況,這時候,整個資料庫系統也就無法訪問了,這與雙機方案本身是高可用性方案的宗旨是相抵觸的。

 

以RAC 為代表的系統

RAC 的英文全稱是:Real Application Cluster(真正的應用級叢集)。我們需要關注的是“應用級”。為了緩解資料庫系統日益增長的效能壓力,ORACLE 公司推出了RAC系統。它基本結構如下:

 

20130312100313.png(29.40 K)2013/3/12 10:04:01

 

 

 

此類系統,專門是針對資料庫效能問題而提出的。採用共用磁碟陣列的方式,因此在結構上和上述雙機容錯相似,不同的地方在於此系統中的資料庫節點之間採用的不是簡單的心跳檢測,而是ORACLE 公司自己定義的一套複雜的資訊交換協議,以此來動態分配來自資料庫用戶端的請求。它的特點是:

a. 是個應用級的叢集,也就是針對ORACLE 的資料庫管理系統(因為資料庫管理系統對於作業系統來講,就是一個“應用程式”,因此被稱為“應用級叢集”),專門為提高資料庫效能而設計。
b. 此系統本身只有一個單一的資料映象,資料儲存在共用的磁碟陣例上,因此享的磁碟陣例成為了整個系統的單點錯誤源。
c. 管理配置複雜。
d. 由於是單一資料映象,因此必須採用通常的複製或備份方法擷取第二份資料,以保證資料的安全性。因此所有複製或備份方法的缺點,此類系統全部存在。
e. 由於資料庫系統本身具有高I/O 的特性,因此,RAC 系統裡,磁碟I/O 是提高效能的關鍵地方。

綜合上所述,針對資料庫系統普遍存在的三大方面的問題,上述各個技術和方案,各有不同的側重,實現的代價和複雜度也各不相同,但是它們有共同的特點是:只解決資料庫系統的某一方面的問題,甚至在解決這方面問題的時候,同時加重了另外一個或兩個方面的問題

 

 

相關閱讀:
Oracle RAC vs SQL Server 第一篇: Oracle RAC 篇利弊分析
Oracle RAC vs SQL Server 第二篇:RAC管理的複雜性
Oracle RAC vs SQL Server 第三篇: SQL Server橫向擴充方案-SODA
Oracle RAC vs SQL Server 第四篇: SQL Server橫向擴充方案-P2P
Oracle RAC vs SQL Server 第五篇: SQL Server橫向擴充方案-可伸縮的共用資料庫
Oracle RAC vs SQL Server 第六篇: Data Dependent Routing

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.