Oracle 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的原因。
LMON主要藉助兩種心跳機制完成健康檢查:
1)節點之間網路心跳,可以簡單理解為節點間定時傳送ping包檢測節點狀態,如果規定時間能收到回應,就認為對方狀態正常
2)透過控制檔案磁碟心跳,每個節點的ckpt程式每3秒更新一次controlfile的資料快,由於controlfile是共享的,所以例項之間可以檢查對方是否及時更新controlfile來判斷對方的狀態。
5、DIAG: Diagnostic Capture Process。
用來列印診斷資訊。diag程式會響應別的程式發出的dump請求,將相關的診斷資訊寫到diag trace檔案中。在RAC上,當發出global oradebug請求時,會由每個例項的diag程式來列印診斷資訊到diag trace中。
比如:下面的命令用了“-g”,那麼生成的dump資訊會分別寫到每個例項的diag trace檔案中:
SQL>oradebug -g all hanganalyze 3
SQL>oradebug -g all dump systemstate 266
6、ASMB: ASM Background Process。
用於和ASM例項進行通訊,用來管理storage和提供statistics。當使用ASMCMD的cp命令時,需要用到ASM例項上的ASMB程式,例項的spfile如果位於存於ASM上,那麼也會用到ASMB程式。如果OCR存放在ASM中,也會用到ASMB。
7、RBAL:ASM Rebalance Master Process。
作為ASM磁碟組進行rebalance時的協調者(Coordinator)。在資料庫例項上,由它來管理ASM磁碟組。
8、Onnn:ASM Connection Pool Process。
是從資料庫例項連線到ASM例項上的一些連線池,透過這些連線池,資料庫可以傳送訊息給ASM例項。比如,由它將開啟檔案的請求傳送給ASM例項,這些連線池只處理一些較短的請求,不處理建立檔案這種較長的請求。
9、PING:Interconnect Latency Measurement Process。
用來檢查叢集中各個例項間的私網通訊狀況。每個例項每隔幾秒會傳送給其它例項一些訊息,這些訊息會由其它例項的PING程式收到。傳送和接收資訊花費的時間會被記錄下來並判斷是否正常。
10、LMHB: Global Cache/Enqueue Service Heartbeat Monitor。
監控本地的LMON, LMD, LCK0,RMS0 and LMSn等程式是否執行正常,是否被阻塞或者已經hang了。
11、RMSn:Oracle RAC Management Process。
完成對RAC的一些管理任務,比如當一個新的例項加入到叢集后,給這個例項建立相關的資源。
12、RSMN: Remote Slave Monitor Process。
管理後臺的slave程式的建立,作為遠端例項的協調者來完成一些任務。
13、GTXn: Global Transaction Process。
在RAC環境中對於XA 事務提供透明支援,維護在RAC中的XA事務的global資訊,完成global事務的兩階段提交。
14、RCBG: Result Cache Background Process。
這個程式用來處理RAC上Result Cache相關的訊息。
15、ACMS: Atomic Control File to Memory Service Process。
作為每個例項上的agent來保證SGA的更新在RAC的所有例項上都是同步的,或者是全域性成功提交,或者由於一些問題而導致全域性回滾。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2131562/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RAC資料庫後臺程式介紹資料庫
- Oracle VKRM 後臺程式介紹Oracle
- 後臺程式介紹
- oracle RAC 底層程式介紹Oracle
- [zt] Oracle RAC 後臺程式Oracle
- 關於Oracle RAC後臺程式Oracle
- Oracle RAC 概念介紹Oracle
- Oracle後臺程式及其作用簡介Oracle
- Oracle後臺程式的功能簡介Oracle
- RAC後臺GTX程式
- Oracle程式結構及後臺程式簡介Oracle
- Oracle:RAC 程式簡介Oracle
- Oracle 10g RAC TAF介紹Oracle 10g
- 【RAC】Oracle RAC上線測試場景介紹Oracle
- Oracle RAC DRM介紹和關閉DRMOracle
- [轉載]Oracle 10g RAC TAF介紹Oracle 10g
- ORACLE後臺程式Oracle
- oracle 後臺程式Oracle
- Oracle CRS/GI 程式介紹Oracle
- oracle GlodenGate 程式介紹Oracle
- rac讀書札記---後臺程式
- WINDOWS ORACLE 後臺程式WindowsOracle
- Oracle後臺程式列表Oracle
- Flutter 3.7 新特性:介紹後臺isolate通道Flutter
- RAC例項中附加的後臺程式
- ORACLE 12C RAC 生產環境搭建介紹Oracle
- Oracle 12c RAC OCR和voting files介紹Oracle
- 介紹RAC環境中的應用程式部署——RAC部署和效能
- Oracle RAC叢集、程式、日誌簡介Oracle
- Oracle 後臺程式 說明Oracle
- Oracle後臺程式詳述Oracle
- 【DBMS】Oracle DBMS_OUTOUT程式介紹Oracle
- LGnn 程式介紹(oracle 19c)GNNOracle
- Oracle RAC/Clusterware 多種心跳heartbeat機制介紹 RAC超時機制分析Oracle
- 前臺怎樣獲取後臺ajax資料簡單介紹
- ORACLE 10G 後臺程式Oracle 10g
- oracle架構之後臺程式Oracle架構
- rac後臺程式說明及一些概念