rac讀書札記---後臺程式

season0891發表於2011-09-09

1.GSD global services daemon

   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

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

3.LMD:GLOBAL ENQUEUE SERVICE DAEMON

LMD程式主要管理對全域性佇列和資源的訪問,並更新相應佇列的狀態,處理來自於其他例項

的資源請求。每一個全域性佇列的當前狀態儲存在相應的例項共享記憶體中,該狀態表明該例項

具有相應的權利使用該資源。一個例項(master)的共享記憶體中存在一個特殊的佇列,該隊

列紀錄來自其他遠端例項的資源請求,當遠端例項的LMD程式發出一個資源請求時,該請求

指向master例項的LMD,當master例項的LMD程式受到該請求後,在共享記憶體中的特殊佇列

中監測該資源是否無效,如果有效則LMD程式更新該資源對列的狀態,並通知請求資源的

LMD程式該資源佇列可以使用了,如果資源佇列正在被其他例項使用或者當前無效,則

LMD程式通知正在使用中的例項的LMD程式應該釋放該資源,等資源釋放變得有效時,

MASTER例項的LMD程式更新該資源佇列的狀態並通知請求資源例項的LMD程式該資源

佇列可以使用了。另外LMD程式也負責佇列的死鎖問題。。。

4.LMSn: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

LCK程式主要用來管理例項間資源請求和跨例項呼叫操作,呼叫操作包括資料字典等物件

的訪問;並處理出CACEH FUSION的CHACE資源請求(例如:DICTIONARY CACHE)

6.DIAG:DIAGNOSABILITY DAEMON

DIAG程式主要用來捕獲例項中失敗程式的診斷資訊,並生成相應的TRACE檔案(該trace

檔案儲存在backupground_dump_dest/cdmp_timestamp目錄下),該程式不

需要進行配置更不應該被停止。該程式自動啟動不需要進行調整,如果該程式失效則自動

重新啟動。


轉自:http://madboy.itpub.net/post/932/15265

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

相關文章