盤點構成Oracle RAC軟體的三種型別

luckyfriends發表於2013-03-24

轉:

【IT168 技術】RAC的實現都是基於硬體的配合,使用軟體產品來實現的,根據前面討論到的邏輯層次結構,構成RAC的軟體主要包括儲存層、叢集層和資料庫層,分別由儲存管理軟體、叢集管理軟體和資料庫管理軟體來實現。

  在10g版本之前的Oracle RAC中,要搭建一個Oracle叢集環境需要用到第三方的叢集管理軟體和儲存管理軟體。Oracle從10g開始,推出了自己的叢集管理軟體和儲存管理軟體。Oracle 11g R2將這兩部分軟體進行打包,作為一個基礎的架構軟體推出,同時支援第三方產品的使用。下面對這三部分軟體進行詳細的討論。

  儲存管理軟體

  Oracle 11g之前,Oracle資料庫支援直接使用裸裝置,雖然它有高效能等特點,但也存在不便於管理等問題。從11gR2開始,Oracle圖形化介面不再支援直接使用裸裝置,取而代之的是使用Oracle ASM(Automated Storage Management,自動儲存管理)作為Oracle預設的儲存管理方式。

  ASM結構沒有檔案系統那麼複雜,豐富的特性使它同樣具有出色的效能,非常適合Oracle資料庫的使用。從11gR2版本開始,包括Clusterware磁碟檔案OCR和Votedisk在內的所有Oracle檔案,都支援直接存放到ASM當中,並且在ASM的基礎上還推出了ACFS(ASM Clusterware File System,ASM叢集檔案系統)。由此Oracle有了自己的叢集檔案系統,ASM開始成為一種完整的儲存解決方案。

  ASM也是建立在裸裝置基礎上,沒有任何檔案系統對它進行格式化。ASM能夠實現映象和條帶化,支援動態地新增、刪除磁碟,並且能自動實現重新平衡(可以簡單地理解為碎片整理功能)。ASM管理工具SRVCTL、ASMCMD在10g的基礎上進行了擴充套件和增強。11gR2版本新推出的ASM圖形化管理工具ASMCA,為ASM的使用提供了強有力的支撐。

  除了ASM外,Oracle繼續支援使用叢集檔案系統作為儲存方式。10g版本中出現的OCFS(Oracle Cluster File System,Oracle叢集檔案系統)依然能夠繼續使用,從10g版本的使用情況來看OCFS是很穩定的,但它的穩定性依賴於節點網路(使用OCFS需要配置網路心跳)和儲存連線的穩定性。Oracle也支援使用NFS的方式實現共享儲存,同時繼續支援第三方的叢集檔案系統,如Red Hat 的GFS、IBM AIX的GPFS等。

  叢集管理軟體

  部署RAC不僅硬體上有一定的要求,軟體也不像單例項資料庫只需要一個資料庫軟體。除了資料庫軟體外,叢集還需要叢集管理軟體協調節點伺服器之間的工作,以管理叢集的各種資源,配合資料庫實現叢集的高可用性。Oracle有自己的叢集管理軟體Clusterware,Clusterware與Database高度地整合,它們的組合成為部署RAC的首選。同時,Oracle也支援第三方的叢集軟體來實現RAC,但這並不意味著不需要Clusterware,即使使用第三方叢集管理軟體也只能代替Clusterware的部分功能,從某種角度講,使用第三方叢集管理軟體來實現RAC只會增加管理難度和維護成本。

  Clusterware為所有平臺的Oracle資料庫提供一個完整的叢集解決方案,併為RAC執行提供必要的基礎架構。Clusterware透過對VIP地址、資料庫、監聽器、服務等CRS資源的管理提供RAC的高可用性。

  使用Clusterware不僅可以使Database具有高可用性,透過簡單的配置也可以使應用伺服器具有高可用性。所以,Clusterware更像是一個獨立的產品,它不只限於配合Database的使用,還可以和其他應用產品整合來實現各種產品的高可用性。從Oracle 11g開始,Clusterware作為Grid Infrastructure的一部分被安裝和使用。安裝和執行Clusterware的伺服器可以具備不同機型、不同配置,但同一個叢集必須安裝相同的作業系統。

  RAC的部署不依賴於第三方叢集管理軟體,提供了只使用Oracle產品就能完成叢集搭建的整體解決方案。對於客戶來說,這樣既降低了維護成本,減少了廠家之間責任的推脫,也使問題得到了更快的解決。

  資料庫管理軟體

  狹義上講,RAC特指RAC Database,是廣義RAC體系中的資料庫層,是RAC體系中最核心的部分,由分佈在不同節點伺服器的資料庫例項和共享儲存上的資料庫組成。一個RAC Database只有一個資料庫,但是有多個例項分佈在不同的伺服器上。RAC Database也是個叢集,比單例項資料庫有更多的後臺程式來保證節點間例項訪問的一致性,同時,它又與叢集管理軟體的後臺程式配合,共同實現RAC高可用性。

  在單例項資料庫中,例項和資料庫是一對一的關係;在RAC資料庫中,例項和資料庫是多對一的關係。RAC Database不同於Oracle單例項資料庫,每個RAC例項有如下特點:

  ·有獨立的Redo程式和檔案,必須放在共享儲存上。

  ·有獨立的UNDO表空間,必須放在共享儲存上。

  RAC Database通常包含兩個或更多的資料庫例項,每個例項包含自己的記憶體結構和後臺程式。RAC Database和單例項資料庫有相同的記憶體結構和後臺程式,另外還附加了一些RAC所特有的程式和記憶體結構。RAC資料庫使用Cache Fusion技術,將所有例項的SGA融合到一起,使之形成邏輯上單一的緩衝區,每個節點例項緩衝區都是叢集緩衝區的組成部分。由於Cache Fusion的原因,RAC資料庫佔用的SGA空間要比單例項佔用SGA的空間更大。

  RAC並不能解決執行中可能出現的所有故障。儲存失敗(如陣列磁碟損壞)對RAC來說是致命的,一旦儲存失敗就可能導致所有執行節點都會出現問題。Oracle針對這種情況提出了MAA(Maximum Availability Architecture,最高可用性構架),即RAC+Active Data Guard,它可以有效地避免儲存失敗導致的資料丟失和長時間停機。Active Data Guard中的Active指的是從11gR2開始,物理Standby以只讀方式開啟的情況下,依然可以應用傳送過來的日誌。本書第11章將詳細討論Data Guard技術。

  需要說明的是,MAA構架是最高可用性,但不是完全可用性。Data Guard的主備切換可能需要幾分鐘或更長的時間。所以即使使用了MAA構架,當RAC所有節點出現了故障,在一定時間內也會影響系統的正常使用。

  小結

  RAC具有非常多的特點,首先RAC是並行執行的架構,所有的節點都同時工作,具備非常高的可用性,能夠在出現單點故障的時候依然提供服務。由於11gR2版本中網格即插即用的出現,叢集新增、刪除節點變得非常方便,RAC的吞吐量隨著節點數目的增加也不斷得到增大。

  RAC是高可用性的解決方案,但是由於它的執行需要眾多不同型別硬體產品的支援和協同工作,所以可能存在一些不穩定的情況;同時,由於RAC的體系結構導致私有網路成為RAC的一個效能瓶頸,後面將對這兩個問題進行詳細的討論。最後討論了組成RAC的軟體,分別由儲存管理軟體、叢集管理軟體和資料庫管理軟體構成。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-756965/,如需轉載,請註明出處,否則將追究法律責任。

相關文章