Oracle RAC後臺程序介紹
在Oracle RAC資料庫上會比單例項資料庫多一些程序,這些程序是RAC特有的,為了實現叢集資料庫功能而設定的。這篇文章會對RAC特有的程序做一些介紹。
1、LMSn: Global Cache Service Process。
LMSn程序會維護在Global Resource Directory (GRD)中的資料檔案以及每個cached block的狀態。LMSn用於在RAC的例項間進行message以及資料塊的傳輸,這個對應的服務也就是GCS(Global Cache Service),LMS是Cache Fusion的一個重要部分。LMS程序可以說是RAC上最活躍的後臺程序,會消耗較多的CPU.一般每個例項會有多個LMS程序,每個Oracle版本的預設的LMS程序數目會有所不同,大部分版本的預設值是:MIN(CPU_COUNT/2, 2))
2、LMD: Global Enqueue Service Daemon。(對應的服務叫GES服務)
LMD 程序主要處理從遠端節點發出的資源請求,在多個例項之間協調對資料塊的訪問順序,保證資料的一致性訪問,大概過程如下:
+ 一個連線發出了global enqueue 請求
+ 這個請求會被髮給本節點的LMD0程序
+ 這個前臺程序會處於等待狀態
+ LMD0會找到這個資源的master節點是誰
+ LMD0會把這個請求傳送給master節點
+ 如果需要的話,master節點會增加一個新的master資源
+ 這時從master節點可以獲知誰是owner, waiter
+ 當這個資源被grant給requestor後, master節點的LMD0程序會告知requestor節點的LMD0
+ 然後requestor節點的LMD0會通知申請資源的前臺程序
GCS服務與GES服務還有GRD共同構成了RAC的Cache Fusion(快取融合)
快取融合是RAC內部最複雜的一部分,其中資料塊是如何通過private network在例項之間傳遞,如何控制訪問順序,這些都很複雜,有興趣的同學可以研究
如上總結LMD主要處理global enqueue 的請求, 而LCK0主要處理本例項的lock.
另外,RAC上的global deadlock 也是由LMD來發現的。
3、LCK0: Instance Enqueue Process。
LCK0程序主要處理非cache fustion的資源請求,比如library 和row cache 請求。
LCK0處理在例項一級的鎖:
Row cache entries
Library cache entries
Result cache entries
這些例項級的鎖的owner, waiter是LCK0程序。
只要這個例項的鎖的owner是LCK0,那麼這個例項的任何一個連線都可以使用這種cached的metedata.
如果本地的例項沒有擁有這個lock,那麼需要申請這個lock,前臺程序會等待DFS Lock Handle。
另外,當shared pool出現壓力需要釋放一些記憶體來存放新的cursor時,LCK程序會將dictionary cache 的一些記憶體進行釋放。
4、LMON: Global Enqueue Service Monitor。
LMON用於監控整個叢集的global enqueues和resources, 而且會執行global enqueue recovery。例項異常終止後,會由LMON來進行GCS記憶體方面的處理。當一個例項加入或者離開集群后,LMON會對lock和resource進行reconfiguration.也就是說當某個節點出現故障時,LMON負責叢集重構,GRD恢復等操作,另外LMON會在不同的例項間進行通訊檢查,如果發現對方通訊超時,就會發出節點eviction,所以很多時候節點發生eviction後(ORA-481, ORA-29740等),我們需要檢視LMON的trace來了解eviction的原因。
Oracle 11g 在RedHat Linux 5.8_x64平臺的安裝手冊 http://www.linuxidc.com/Linux/2014-07/104745.htm
Linux-6-64下安裝Oracle 12C筆記 http://www.linuxidc.com/Linux/2013-07/86805.htm
在CentOS 6.4下安裝Oracle 11gR2(x64) http://www.linuxidc.com/Linux/2014-02/97374.htm
Oracle 11gR2 在VMWare虛擬機器中安裝步驟 http://www.linuxidc.com/Linux/2013-09/89579p2.htm
Debian 下 安裝 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htm
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-10/107845p2.htm