oracle RAC 底層程式介紹

luckyfriends發表於2013-03-26

http://blog.csdn.net/inthirties/article/details/4875535

 1.GSD global services daemon 

oracle官方文件的描述 

The Global Services Daemon (GSD) runs on each node with one GSD process per node. The GSD coordinates with the cluster manager to receive requests from clients such as the DBCA, EM, and the SRVCTL utility to execute administrative job tasks such as instance startup or shutdown. The GSD is not an Oracle instance background process and is therefore not started with the Oracle instance. 

GSD與rac的管理工具dbca srvctl oem進行互動,用來完成例項的啟動關閉等管理任務。 
為了保證這些管理工具執行正常必須在所有的節點上先start gsd,並且一個GSD程式支援在 
一個節點的多個rac.gsd程式位於$ORACLE_HOME/bin目錄下,其log檔案為$oracle_home 
/srvm/log/gsdaemon.log 
例如: 
假設使用oem工具來啟動一個例項,oem把該任務傳遞給相應的智慧引擎,該智慧引擎生成 
一個包含SRVCTL命令的指令碼檔案,GSD程式讀取該指令碼檔案並且執行該指令碼,最後GSD把 
執行結果返回給智慧引擎,近而智慧引擎返回給OEM. 
又例如假設使用srvctl工具關閉所有的例項,GSD程式接受來自SRVCTL工具發出的請求,並 
在本地節點上執行該請求,然後把執行結果返回給SRVCTL會話。 

2.LMON: Global Enqueue Service Monitor 
oracle官方文件的描述 
Global Enqueue Service Monitor (LMON) 

The background LMON process monitors the entire cluster to manage global resources. LMON manages instance deaths and the associated recovery for any failed instance. In particular, LMON handles the part of recovery associated with global resources. LMON-provided services are also known as Cluster Group Services. 

LMON主要監測群集內的全域性佇列和全域性資源,管理例項和處理異常並相應的群集佇列進行恢復操作。 

3.LMD: Global Enqueue Service Daemon 
oracle官方文件的描述 
Global Enqueue Service Daemon (LMD) 

The resource agent process that manages requests for resources to control access to blocks. The LMD process also handles deadlock detection and remote resource requests. Remote resource requests are requests originating from another instance. 

LMD程式主要管理對全域性佇列和資源的訪問,並更新相應佇列的狀態,處理來自於其他例項 
的資源請求。每一個全域性佇列的當前狀態儲存在相應的例項共享記憶體中,該狀態表明該例項 
具有相應的權利使用該資源。一個例項(master)的共享記憶體中存在一個特殊的佇列,該隊 
列紀錄來自其他遠端例項的資源請求,當遠端例項的LMD程式發出一個資源請求時,該請求 
指向master例項的LMD,當master例項的LMD程式受到該請求後,在共享記憶體中的特殊佇列 
中監測該資源是否無效,如果有效則LMD程式更新該資源對列的狀態,並通知請求資源的 
LMD程式該資源佇列可以使用了,如果資源佇列正在被其他例項使用或者當前無效,則 
LMD程式通知正在使用中的例項的LMD程式應該釋放該資源,等資源釋放變得有效時, 
MASTER例項的LMD程式更新該資源佇列的狀態並通知請求資源例項的LMD程式該資源 
佇列可以使用了。另外LMD程式也負責佇列的死鎖問題。。。 

4.LMSn: Global Cache Service Processes 
oracle官方文件的描述 
Global Cache Service Processes (LMSn) 

Processes that manage remote messages. Oracle RAC provides for up to 10 Global Cache Service Processes. The number of LMSn varies depending on the amount of messaging traffic among nodes in the cluster. 

GLOBAL CACHE SERVICE PROCESS(n 0~9)LMS程式主要用來管理叢集內資料塊的訪問,並在不同例項的BUFFER CACHE中傳輸塊 
映象。LMS程式跨叢集管理資料庫的請求,並保證在所有例項的BUFFER CACHE中一個 
資料塊的映象只能出現一次。LMS程式靠著在例項中傳遞訊息來協調資料塊的訪問,當 
一個例項請求資料塊時,該例項的LMD程式發出一個資料塊資源的請求,該請求只向 
MASTER資料塊的例項的LMD程式,MASTER例項的LMD程式同時正在使用的例項的LMD 
程式釋放該資源,這時擁有該資源的例項的LMS程式會建立一個資料塊映象的一致性讀 
然後把該資料塊傳遞到請求該資源的例項的BUFFER CACHE中。 
LMS程式保證了在每一時刻只能允許一個例項去更新資料塊,並負責保持該資料塊的 
映象紀錄(包含更新資料塊的狀態FLAG),RAC提供了10個LMS程式,該程式數量隨著 
節點間的訊息傳遞的資料的增加而增加。 

5.LCK 
oracle官方文件的描述 

Instance Enqueue Process 
程式主要用來管理例項間資源請求和跨例項呼叫操作,呼叫操作包括資料字典等物件 
的訪問;並處理出CACEH FUSION的CHACE資源請求(例如:DICTIONARY CACHE) 

6.DIAG: 

DIAGNOSABILITY DAEMONDIAG程式主要用來捕獲例項中失敗程式的診斷資訊,並生成相應的TRACE檔案(該trace 
檔案儲存在backupground_dump_dest/cdmp_timestamp目錄下),該程式不 
需要進行配置更不應該被停止。該程式自動啟動不需要進行調整,如果該程式失效則自動 
重新啟動。 

7. ONS Oracle Notification Services 
oracle 官方文件的描述 
A publish and subscribe service for communicating information about all FAN events. 

負責不同的節點點的通訊。 

參考文件 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-757157/,如需轉載,請註明出處,否則將追究法律責任。

相關文章