1. 程式人生 > >RAC基本架構

RAC基本架構

文件的 text 操作 統一 dia 指數 cluster 特殊 錯誤

在RAC集群中,

cache fusion --GCS: 實現實例之間數據塊的復制傳遞

--GES: 負責管理鎖



鎖PCM_Lock和Non_PCM_Lock(實現節點值的協調) ----鎖管理器DML

----管理兩種資源

----決定是否允許節點上用戶對某個數據塊的訪問請求

----兩種資源CacheFusion資源和Non_CacheFusion

----CacheFusion資源--指數據塊資源,如索引塊、普通表數據存儲的數據塊、還原段存儲的數據塊

記錄數據塊的版本信息,當前狀態、節點分布

----Non_CacheFusion--如數據庫緩存、數據文件、參數文件

鎖PCM_Lock用於協調節點之間對數據塊的並發控制和訪問



RAC的優勢:提高系統的可靠性(HA)以及平衡系統負載(LB)

高可用:

系統可靠性=1-(1-單點失敗故障率)^節點數

隨著節點數越高,系統可靠性就越高

平衡系統負載:

在系統負載時,RAC可以自動在多個節點之間平衡負載,減輕單個實例的計算壓力


RAC=多個單節點組成的數據庫系統,每個單節點上運行單個實例


RAC的特殊問題


並發控制

采用DLM機制管理實例間的並發控制(共享存儲)


健忘癥

因為日常操作的需要,從而使的數據庫關閉,導致集群中的副本配置文件不能同步修改。


腦裂

心跳機制。控制權的問題----投票算法

邏輯上的隔離


IO隔離

問題及目的:確保邏輯隔離的節點無法訪問共享數據,即在物理上的隔離

解決:軟件方法---重啟故障節點



RAC集群的邏輯與物理結構

技術分享圖片


存儲層

RAC=n*instance+1*database

datafile、online logfile、controlfile等存儲在共享存儲上

每個服務器通過HBA卡和光纖線連接到存儲上。

instance=SGA+background process

database=datafile+logfile+controlfile+...

網絡層

Public 網卡接入的網絡,對外提供查詢服務

Private 網卡組成的私有網絡,用於RAC的心跳和Cache fusion;

存儲設備、光纖交換機、每個節點的HBA卡組成的存儲網絡


前兩個傳輸的IP數據包,最後一個傳輸的是SCSI數據


集群件層

存儲設備共享,RAC在OS Kernel和oracle之間加上了一層cluster ware

它會在OS Kernel之前截獲請求,然後和其它節點上的clusterware 協商,最終完成上層的請求

Linux平臺上必須使用CRS(cluster ready service)


應用層

整個應用層是由若幹CRS監控的CRS Resource組成的

Resource分成兩組nodeapps和database—related resource

包括GSD、ONS、VIP、Listener 在CRS過程中自動創建的

包括Database、Instance、Service 可以自動創建,也可以通過DBCA、Netca、Srvctl


RAC架構詳解

1.GRD的作用

該區域用來存儲同一個數據庫在不同節點上的分不,即多個實例在並發操作一個數據塊時,將該數據塊放在各自實例的GRC內存區。

2.LMON進程

通過協調通信,去檢查各自當前狀態


3.LMD進程

LMD提供GES服務,去協調節點之間對同一數據塊的訪問。


4.LCK進程

鎖進程,負責在集群中對統一數據塊訪問的鎖管理。


5.LMSn進程

LMSn提供GCS,在節點之間復制數據塊


6.DIAG進程

“日誌”進程,記錄集群的健康狀態,並記錄實例錯誤時的診斷信息


7.參數文件和日誌文件的存儲

參數文件和日誌文件必須在所有節點的實例之間共享。


clusterware組件

1.OCR

OCR 是一個磁盤文件,該文件存儲在裸設備上,它的作用是存儲RAC集群節點的配置信息,

因為整個環境中只有一個存儲配置的磁盤文件,所以實現了對集群配置的同步修改。

2.Voting Disk

該文件用於存儲節點狀態,該文件是共性存儲到裸設備,每個節點都可以訪問到,一旦某個節點失效,通過“投票”算法將失效的節點提出集群,重構一個健康的集群。

3.occsd後臺進程

集群同步服務,通過某種機制來判斷集群中的節點是否“活著”,監控節點健康狀態。

ocssd進程就是完成css服務的。

4.crsd進程

crsd進程通過讀取OCR文件中存儲的資源狀態信息,監控管理資源,並在這些資源故障時提供系統的高可用性。

5.其它clusterware進程

EVMD進程負責分發CRS產生的事件

RACGIMON進程負責檢查數據庫的狀態

6.網絡設置

兩個網卡。private+Public


clusterware安裝過程中,還需要配置VIP,該地址綁定到Public網卡上,以實現RAC集群的failover。


RAC基本架構