在一個應用環境當中,所有的伺服器使用和管理同一個資料庫,目的是為了分散每一台伺服器的工作量,硬體上至少需要兩台以上的伺服器,而且還需要一個共用存放裝置。同時還需要兩類軟體,一個是叢集軟體,另外一個就是Oracle資料庫中的RAC組件。同時所有伺服器上的OS都應該是同一類OS,根據負載平衡的配置策略,當一個用戶端發送請求到某一台服務的listener後,這台伺服器根據我們的負載平衡策略,會把請求發送給原生RAC組件處理也可能會發送給另外一台伺服器的RAC組件處理,處理完請求後,RAC會通過叢集軟體來訪問我們的共用存放裝置.
邏輯結構上看,每一個參加叢集的節點有一個獨立的linstance,這些linstance訪問同一個資料庫。節點之間通過叢集軟體的通訊層(communication layer)來進行通訊。同時為了減少IO的消耗,存在了一個全域快取服務,因此每一個資料庫的linstance,都保留了一份相同的資料庫cacheI
RAC中的特點是:
每一個節點的linstance都有自己的SGA
每一個節點的linstance都有自己的background process
每一個節點的linstance都有自己的redo logs
每一個節點的linstance都有自己的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 執行個體查詢進程
Oracle RAC一般也可構建於大型SMP主機,IBM的AIX系列伺服器往往是其中高端平台,Intel Linux往往作為其低端平台。當AIX UNIX用來運行Oracle RAC作為大型資料庫系統平台時,其叢集系統構建、實施、營運、高可用設定,有其平台特點。