RAC後台進程介紹,rac後台進程

來源:互聯網
上載者:User

RAC後台進程介紹,rac後台進程
在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的原因。

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執行個體,這些串連池只處理一些較短的請求,不處理建立檔案這種較長的請求。


------11G 特有的:

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的所有執行個體上都是同步的,或者是全域成功提交,或者由於一些問題而導致全域復原。


怎啟動 rac

crsctl啟動crs進程,然後用crs_stat -v -t查看後台進程狀態,最後用srvct去啟動各個服務
 
Oracle rac 進程死結怎查看並且殺掉

試試下面的方法:第一步:查看是否有死結存在,查出有資料則代表有死結select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a,v$locked_object b,all_objects c
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.