oracle clusterware 和 oracle rac 的主要部件

oracle clusterware 和 oracle rac 的主要部件

現在看相關的RAC結構的文章還不太理解。

現在看這個就很清楚其中的意思了。

oracle clusterware 主要有以下主要部件:
CSS: 集羣同步服務
主要管理整個集羣內各個節點間的情況,包括節點的添加和減少。與之對應的是ocssd 進程,如果改進程出現故障將會導致節點重啓。如果使用了第三方的clusterware,css 通過第三方clusterware 管理節點間的信息。
關於是否使用第三方clusterware,css 的不同在init.crsd 中有如下定義:
# FAST_REBOOT - take out the machine now. We are concerned about
# data integrity since the other node has evicted us.
# SLOW_REBOOT - We can rely on vendor clusterware to delay sending
# the reconfig to the other node due to its IO fencing
# guarantees. So trigger its diagnostic reboot.

如果使用了第三方的clusterware,是否reboot的決定將交給它去決定。

CRS: 集羣就緒服務
主要管理註冊到cluster 中的資源(包括vip,instance,db,listener,service等),它會自動重啓失敗的資源,一般會自動重啓5次,如果依然不能重啓成功,將放棄重啓。

EVM: 事件管理器
主要發佈一些crs 產生的事件。

ONS: Oracle Notification Service
主要是接受evmd 和 racgimon 傳來的events,並把它發佈給local listener 和 application。
主要有兩個目的:
a) 使得應用知道集羣的狀態的變化,並採取相應的措施。如Fast Connection Failover.
b) 用於實現Load balancing. rdbms 的mmon 進程每隔30s 對該節點的wordload 做一次記錄,然後通過racgimon 和 ONS 傳遞給local listener 和 application。

OPROCD:
該進程時刻在內存中運行,監控cluster。如果該進程出現故障,將會重啓改節點。

RAC 的主要部件:

相對於單節點的oracle database,rac database 主要是引入了cache fusion 機制,從而減少了磁盤io的次數。在瞭解rac特有的一些進程之前,先了解一些概念:

GRD:Global Resource Directory
存放在本地內存中,記錄共享資源當前的狀態。一般一個GRD包含如下內容:dba, location, mode(N, S, X),Role (local,global), PI,XI, scn 等。在一個遠程節點提出訪問一個數據塊的請求之後,要通過訪問grd來查看當前模式是否允許遠程節點的相應的操作。

Resources Master:
在每次訪問一個數據塊的時候,都要先訪問一次Resources Master(對於每個數據塊,oracle 都會爲之分配一個instance,作爲這個數據塊的RM), 然後,Resources Master 通知ges,ges將請求信息發送給gcs,然後訪問grd,一切通過之後gcs從該塊的holder instance 開始相應遠程節點的請求。
在一下情況,RM的位置可能發生改變:
a) 當遠程節點訪問這個RM的次數大於RM所在節點的次數時,RM將遷移至遠程節點
b) 當RM所在節點failed以後,本節點的RM要重新分配到其他存活的節點
c)當添加新的節點後,RM也要重新分配。
RM 的重新分配由進程LMON 負責。

RAC環境特有的若干進程:

LMS—Global Cache Service Process
傳輸一個本地的buffer cache 到遠程的buffer cache,對於要求一致性讀的請求,LMS會自動rollback一個數據塊來相應一致性請求。根據LMS任務量的多少,每個實例改進程的數量可以從1增加到9.

LMD—Global Enqueue Service Daemon
負責管理遠程節點向Resources Master 發出的請求。它發送請求信息到request enqueue, 然後有gcs 來處理enqueue 上面的請求。

LMON—Global Enqueue Service Monitor
負責RM的重新分配

LCK0—Instance Enqueue Process
主要負責那些non-cache fusion 的請求,如library cache 和 row cache 等。
發佈了66 篇原創文章 · 獲贊 7 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章