深入探究 Oracle RAC原理

概述

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

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


RAC體系結構

深入探究 Oracle 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,感興趣的可以關注下!

深入探究 Oracle RAC原理


分享到:


相關文章: