Oracle RAC

Oracle RAC

RAC是real application clusters的縮寫,譯為“實時套用集群”, 是Oracle新版資料庫中採用的一項新技術,是高可用性的一種,也是Oracle資料庫支持格線計算環境的核心技術。

優點

Oracle RAC主要支持Oracle9i、10g、11g,12C版本,可以支持24 x 7 有效的資料庫套用系統,在低成本伺服器上構建高可用性資料庫系統,並且自由部署套用,無需修改代碼。

在Oracle RAC環境下,Oracle集成提供了集群軟體和存儲管理軟體,為用戶降低了套用成本。當套用規模需要擴充時,用戶可以按需擴展系統,以保證系統的性能。

(1)多節點負載均衡;

(2)提供高可用:故障容錯和無縫切換功能,將硬體和軟體錯誤造成的影響最小化;

(3)通過並行執行技術提高事務回響時間----通常用於數據分析系統;

(4)通過橫向擴展提高每秒交易數和連線數----通常對於在線上事務系統;

(5)節約硬體成本,可以用多個廉價PC伺服器代替昂貴的小型機或大型機,同時節約相應維護成本;

(6)可擴展性好,可以方便添加刪除節點,擴展硬體資源。

缺點

(1)相對單機,管理更複雜,要求更高;

(2)在系統規劃設計較差時性能甚至不如單節點;

(3)可能會增加軟體成本(如果使用高配置的pc伺服器,Oracle一般按照CPU個數收費)。

在Oracle9i之前,RAC的名稱是OPS (Oracle parallel Server)。RAC 與 OPS 之間的一個較大區別是,RAC採用了Cache Fusion(高速快取合併)技術。在 OPS 中,節點間的數據請求需要先將數據寫入磁碟,然後發出請求的節點才可以讀取該數據。使用Cache fusion時,RAC的各個節點的數據緩衝區通過高速、低延遲的內部網路進行數據塊的傳輸。

組件

在一個套用環境當中,所有的伺服器使用和管理同一個資料庫,目的是為了分散每一台伺服器的工作量,硬體上至少需要兩台以上的伺服器,而且還需要一個共享存儲設備。同時還需要兩類軟體,一個是集群軟體,另外一個就是Oracle資料庫中的RAC組件。同時所有伺服器上的OS都應該是同一類OS,根據負載均衡的配置策略,當一個客戶端傳送請求到某一台服務的listener後,這台伺服器根據我們的負載均衡策略,會把請求傳送給本機的RAC組件處理也可能會傳送給另外一台伺服器的RAC組件處理,處理完請求後,RAC會通過集群軟體來訪問我們的共享存儲設備。

邏輯結構上看,每一個參加集群的節點有一個獨立的instance(資料庫實例),這些instance訪問同一個資料庫。節點之間通過集群軟體的通訊層(communication layer)來進行通訊。同時為了減少IO的消耗,存在了一個全局快取服務,因此每一個資料庫的instance,都保留了一份相同的資料庫cache。

RAC中的特點是:

每一個節點的instance都有自己的SGA

每一個節點的instance都有自己的background process

每一個節點的instance都有自己的redo logs

每一個節點的instance都有自己的undo表空間

所有節點都共享一份datafiles和controlfiles

還提出了一個快取融合的技術(Cache fusion)

目的有兩個

01.保證快取的一致性

02.減少共享磁碟IO的消耗

因此在RAC環境中多個節點保留了同一份的DB CACHE

快取融合(Cache fusion)工作原理:

****************************************

01.其中一個節點會從共享資料庫中讀取一個block到db cache中

02.這個節點會在所有的節點進行交叉db block copy

03.當任何一個節點快取被修改的時候,就會在節點之間進行快取修改

04.為了達到存儲的一致最終修改的結果也會寫到磁碟上

ClusterWare組件

*******************

四種Service

Crsd -集群資源服務

Cssd - 集群同步服務

Evmd - 事件管理服務

oprocd - 節點檢測監控

三類Resource

VIP - 虛擬IP位址(Virtual IP)

OCR - Oracle Cluster Registry(集群註冊檔案),記錄每個節點的相關信息

Voting Disk - Establishes quorum (表決磁碟),仲裁機制用於仲裁多個節點向共享節點同時寫的行為,這樣做是為了避免發生衝突。

RAC的組件

************

提供過了額外的進程,用來維護資料庫

LMS - Global Cache Service Process 全局快取服務進程

LMD - Global Enqueue Service Daemon 全局查詢服務守護進程

LMON - Global Enqueue Service Monitor全局查詢服務監視進程

LCK0 - Instance Enqueue Process 實例佇列進程

Oracle RAC一般也可構建於大型SMP主機,IBM的AIX系列伺服器往往是其中高端平台,Intel Linux往往作為其低端平台。當AIXUNIX用來運行Oracle RAC作為大型資料庫系統平台時,其集群系統構建、實施、運維、高可用設定,有其平台特點。可以參照《Oracle大型資料庫系統在AIX/UNIX上的實戰詳解》,該書以AIX UNIX平台為主線,以其他UNIX系統為參照,描述了資料庫系統Oracle 10g、Oracle 11g的RAC的構架方法和過程。在Linux平台,則《大話OracleRAC集群、高可用性、備份與恢復》有著很好的論述。

最佳實踐

Oracle RAC節點負載均衡最佳實踐

Oracle提出的負載均衡基於最小負載的實現方法,增加了額外的cache fusion。在實際環境中,相似業務的最終用戶都將請求傳送到同一RAC節點上。如果RAC系統有不同類型的最終用戶,我們會希望將負載均衡到不同的數據區域去。舉例來說,客戶處理可能在節點1上,訂單處理在節點2上,而產品處理則在節點3上。將RAC最終用戶通過數據需求來分組可以保證cache fusion負載降到最小。

Oracle RAC磁碟存儲管理最佳實踐

為了實施RAC系統,應該使用共享存儲設備因為很多伺服器都必須同時存取磁碟。一個單實例資料庫可以使用Direct Attached Storage (DAS)這是一種連線到單一伺服器上的一組廉價磁碟,而RAC則必須使用Storage Area Network (SAN),這是更昂貴更複雜的通常使用光纖通道連線到多個伺服器的磁碟陣列。這需要一組獨立的硬體,從主機匯流排適配器連線到SAN上。因此DBA具有數據存儲層面的完整知識就顯得很重要。

相關詞條

熱門詞條

聯絡我們