深入探究 Oracle RAC原理

概述

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

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

RAC體系結構

RAC的特點

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

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

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

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

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

Cache fusion

Oracle還提出了一個緩存融合的技術(Cache fusion)

目的有兩個

1.保證緩存的一致性

2.減少共享磁盤IO的消耗

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

緩存融合(Cache fusion)工作原理

1.其中一個節點會從共享數據庫中讀取一個block到db cache中

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

3.當任何一個節點緩存被修改的時候,就會在節點之間進行緩存修改

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

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 實例查詢進程

篇幅有限,這裡大概說下RAC涉及的內容,後期會分享更多關於RAC的內容,教大家怎麼在虛擬機一步一步去做RAC,感興趣的可以關注下!