[zt] ORACLE RAC原理

tolywang發表於2009-06-04


體系結構 

在一個環境當中,所有的和同一個,目的是為了分散每一臺伺服器的工作量,上至少需要兩臺以上的伺服器,而且還需要一個共享裝置。同時還需要兩類,一個是叢集軟體,另外一個就是中的RAC元件。同時所有伺服器上的OS都應該是同一類OS,根據負載均衡的配置策略,當一個客戶端傳送請求到某一臺服務的listener後,這臺伺服器根據我們的負載均衡策略,會把請求傳送給本機的RAC元件處理也可能會傳送給另外一臺伺服器的RAC元件處理,處理完請求後,RAC會透過叢集軟體來訪問我們的共享儲存裝置.
邏輯結構上看,每一個參加叢集的節點有一個獨立的instance,這些instance訪問同一個資料庫。節點之間透過叢集軟體的通訊層(communication layer)來進行通訊。同時為了減少IO的消耗,存在了一個全域性快取服務,因此每一個資料庫的instance,都保留了一份相同的資料庫cacheI

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 - Gobal Cache Service Process 全域性快取服務程式
LMD - Global Enqueue Service Daemon 全域性查詢服務守護程式
LMON - Global Enqueue Service Monitor全域性查詢服務監視程式
LCK0 - Instance Enqueue Process 例項查詢程式

 

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

相關文章