Oracle核心元件

舊夢依稀發表於2013-08-08
1、全域性快取和全域性佇列服務
Oracle RAC環境中,緩衝區快取和共享池是全域性的。每個例項都有自己的緩衝區集,但同時能夠請求和接收當前儲存在另一個例項快取中的資料塊,在RAC環境中,資料共享和交換的管理工作是由全域性快取服務(GCS)完成的。
2、全域性資源目錄(GRD)
及群組中的所有資源構成一個集中資源倉庫,成為“全域性資源目錄”(GRD),它是整合的,分散式的。每個例項掌握著某一組資源,所有例項加起來構成了GRD。叢集組中的資源根據其權重平等的分佈在節點之間。GRD由兩個服務管理,分別是:全域性快取服務(GCS)和全域性佇列服務(GES),GCS處理資料塊快取,GES處理處理佇列和其他全域性資源。GCS和GES一起組成和管理GRD。GRD在以前的版本中也被稱作DLM(分散式鎖管理器)。
3、Oracle RAC後臺程式
在Oracle RAC中,對庫快取和共享池進行全域性協調。所有資源都由鎖進行管理,關鍵的後臺程式也管理這些鎖。Oracle RAC特有的程式如下:
LMS 全域性快取服務程式
LMON 全域性佇列服務監控器
LMD 全域性佇列服務守護程式
LCK0 例項佇列程式
DIAG 診斷守護程式
LMON和LMD程式與遠端節點上的合作程式通訊。其他程式可能與其它節點上的對等程式交換資訊。
4、LMS(Lock Manager Server) 全域性快取服務程式
LMS在特定情況下,它可以從資料塊所在例項的緩衝區向請求例項的緩衝區快取中傳遞資料塊的一致性副本,而不需要進行磁碟寫入。它還可以從LMD建立的伺服器佇列中獲取請求,以執行所請求的鎖操作。LMS程式還控制事件之間的訊息流。此外,LMS程式管理對GCS資源的“鎖管理器伺服器”請求,並將他們傳送到一個由LMS程式處理的服務佇列。它還負責全域性鎖的死鎖檢測,並監控對話的超時。
LMS是快取融合中使用的一個程式。每個例項最多可以有10個LMS程式,可以使用lm_lms或者_lm_lms引數控制LMS程式的數量,預設情況下自動啟動的LMS程式數就是該節點的CPU_COUNT函式的值。
LMS程式還可以由系統動態調整,由_lm_dynamic_lms引數控制,預設情況下此引數被設定為FALSE。
5、LMON 全域性佇列服務監控器
LMON是一個“鎖監控器”程式,負責管理“全域性佇列服務(GES)”。它在程式死亡時維持GCS記憶體的一致性。LMON還負責在有例項加入或離開叢集時進行叢集重新配置和鎖重新分配。它還檢測例項死亡並監聽本地訊息。LMON程式還生成一個詳細的跟蹤檔案,用於跟蹤例項重新配置。
後臺的LMON程式監控整個叢集,以管理全域性資源。LMON管理例項死亡以及任意故障例項的相關恢復。具體來說,LMON處理與全域性資源有關的恢復部分。LMON提供的服務業稱作“叢集組服務(CGS)”。
6、LMD(Lock Manager Daemon)全域性佇列服務守護程式
LMD是為GCS管理“佇列管理服務”請求的守護程式。它管理對資源的請求,以控制對資料塊的訪問。LMD程式還負責死鎖檢測和來自其它例項的遠端資源請求。
7、LCK0 例項佇列程式
LCK程式管理例項資源請求和對共享資源的跨例項呼叫操作。它還構建一個無效鎖元件列表,在恢復期間驗證鎖元素。一個例項只能使用一個LCK程式,因為主要功能是由LMS程式處理的。
8、DIAG程式
DIAG是一個輕量級的守護程式,用於滿足Oracle RAC環境中一個例項的所有診斷需要。
為解決與叢集有關的除錯,隨DIAG守護程式一起引入了DIAG框架。這個框架不會干擾或影響系統的正常執行,DIAG的工作與例項無關,僅依賴於由底層作業系統提供的服務。這個框架使用oradebug工具實現叢集範圍內的除錯。如果DIAG程式死亡,PMON會重新啟動一個新的DIAG程式,以繼續其服務。DIAG守護程式還會監控本地Oracle RAC例項的健康狀況,當一個基本程式發生故障時,本地例項中的DIAG程式可以捕獲系統狀態和其他有用資訊,供以後診斷使用,然後通知其它例項上的DIAG程式捕獲類似資訊,這就提供了整個叢集環境的一個快照檢視。DIAG將負責監控本地Oracle RAC例項操作的活躍程度,並在檢測到操作掛起時執行任何必要的恢復操作。

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

相關文章