RAC資料庫後臺程式介紹
在RAC資料庫上會比單例項資料庫多一些程式,這些程式是RAC特有的,為了實現叢集資料庫功能而設定的。
10g RAC特有程式:
$ ps -ef|grep ora_
oracle 4721 1 0 Feb26 ? 00:00:00 ora_diag_ONEPIECE1
oracle 4725 1 0 Feb26 ? 00:02:26 ora_lmon_ONEPIECE1
oracle 4727 1 0 Feb26 ? 00:00:02 ora_lmd0_ONEPIECE1
oracle 4729 1 0 Feb26 ? 00:00:01 ora_lms0_ONEPIECE1
oracle 4733 1 0 Feb26 ? 00:00:01 ora_lms1_ONEPIECE1
oracle 4761 1 0 Feb26 ? 00:00:07 ora_lck0_ONEPIECE1
oracle 4772 1 0 Feb26 ? 00:00:00 ora_asmb_ONEPIECE1
oracle 4776 1 0 Feb26 ? 00:00:00 ora_rbal_ONEPIECE1
oracle 4840 1 0 Feb26 ? 00:00:00 ora_o001_ONEPIECE1
11g RAC特有程式:
$ ps -ef|grep ora_
oracle 426 1 0 Feb27 ? 00:00:08 ora_o000_RAC11G21
oracle 9082 1 0 Feb25 ? 00:01:09 ora_diag_RAC11G21
oracle 9086 1 0 Feb25 ? 00:00:27 ora_ping_RAC11G21
oracle 9088 1 0 Feb25 ? 00:00:06 ora_acms_RAC11G21
oracle 9092 1 0 Feb25 ? 00:05:27 ora_lmon_RAC11G21
oracle 9094 1 0 Feb25 ? 00:01:32 ora_lmd0_RAC11G21
oracle 9096 1 0 Feb25 ? 00:02:07 ora_lms0_RAC11G21
oracle 9100 1 0 Feb25 ? 00:00:06 ora_rms0_RAC11G21
oracle 9102 1 0 Feb25 ? 00:00:14 ora_lmhb_RAC11G21
oracle 9116 1 0 Feb25 ? 00:00:09 ora_rbal_RAC11G21
oracle 9118 1 0 Feb25 ? 00:00:05 ora_asmb_RAC11G21
oracle 9136 1 0 Feb25 ? 00:04:25 ora_lck0_RAC11G21
oracle 9138 1 0 Feb25 ? 00:00:14 ora_rsmn_RAC11G21
oracle 9295 1 0 Feb25 ? 00:00:07 ora_gtx0_RAC11G21
oracle 9297 1 0 Feb25 ? 00:00:07 ora_rcbg_RAC11G21
這篇文章會對這些RAC特有的程式做一些介紹。
LMD: Global Enqueue Service Daemon。LMD 程式主要處理從遠端節點發出的資源請求。大概過程如下:
+ 一個連線發出了global enqueue 請求
+ 這個請求會被髮給本節點的LMD0程式
+ 這個前臺程式會處於等待狀態
+ LMD0會找到這個資源的master節點是誰
+ LMD0會把這個請求傳送給master節點
+ 如果需要的話,master節點會增加一個新的master資源
+ 這時從master節點可以獲知誰是owner, waiter
+ 當這個資源被grant給requestor後, master節點的LMD0程式會告知requestor節點的LMD0
+ 然後requestor節點的LMD0會通知申請資源的前臺程式
也就是說LMD主要處理global enqueue 的請求, 而LCK0主要處理本例項的lock.
另外,RAC上的global deadlock 也是由LMD來發現的。
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 的一些記憶體進行釋放。
LMON: Global Enqueue Service Monitor。LMON用於監控整個叢集的global enqueues和resources, 而且會執行global enqueue recovery。例項異常終止後,會由LMON來進行GCS記憶體方面的處理。當一個例項加入或者離開叢集后,LMON會對lock和resource進行reconfiguration.另外LMON會在不同的例項間進行通訊檢查,如果發現對方通訊超時,就會發出節點eviction,所以很多時候節點發生eviction後(ORA-481, ORA-29740等),我們需要檢視LMON的trace來了解eviction的原因。
還有,在DRM(Dynamic Resource management)中,LMD會監控需要進行remaster的queue,然後把任務傳送給LMON程式,LMON程式來實施remaster。
LMS: Global Cache Service Process。 LMS程式會維護在Global Resource Directory (GRD)中的資料檔案以及每個cached block的狀態。LMS用於在RAC的例項間進行message以及資料塊的傳輸。LMS是Cache Fusion的一個重要部分。LMS程式可以說是RAC上最活躍的後臺程式,會消耗較多的CPU.一般每個例項會有多個LMS程式,每個Oracle版本的預設的LMS程式數目會有所不同,大部分版本的預設值是:MIN(CPU_COUNT/2, 2))
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
ASMB: ASM Background Process。用於和ASM例項進行通訊,用來管理storage和提供statistics。當使用ASMCMD的cp命令時,需要用到ASM例項上的ASMB程式,資料庫例項的spfile如果位於存於ASM上,那麼也會用到ASMB程式。如果OCR存放在ASM中,也會用到ASMB。
RBAL:ASM Rebalance Master Process。作為ASM磁碟組進行rebalance時的協調者(Coordinator)。在資料庫例項上,由它來管理ASM磁碟組。
Onnn:ASM Connection Pool Process。是從資料庫例項連線到ASM例項上的一些連線池,透過這些連線池,資料庫可以傳送訊息給ASM例項。比如,由它將開啟檔案的請求傳送給ASM例項,這些連線池只處理一些較短的請求,不處理建立檔案這種較長的請求。
PZ:PQ slaves。PZnn程式(從99開始)用於查詢GV$檢視,這種查詢需要在每個例項上並行執行。如果需要更多的PZ程式,會自動生成PZ98, PZ97,...(降序)。
11G 特有的:
PING:Interconnect Latency Measurement Process。用來檢查叢集中各個例項間的私網通訊狀況。每個例項每隔幾秒會傳送給其它例項一些訊息,這些訊息會由其它例項的PING程式收到。傳送和接收資訊花費的時間會被記錄下來並判斷是否正常。
LMHB: Global Cache/Enqueue Service Heartbeat Monitor。監控本地的LMON, LMD, LCK0,RMS0 and LMSn等程式是否執行正常,是否被阻塞或者已經hang了。
RMSn:Oracle RAC Management Process。完成對RAC的一些管理任務,比如當一個新的例項加入到叢集后,給這個例項建立相關的資源。
RSMN: Remote Slave Monitor Process。管理後臺的slave程式的建立,作為遠端例項的協調者來完成一些任務。
GTXn: Global Transaction Process。在RAC環境中對於XA 事務提供透明支援,維護在RAC中的XA事務的global資訊,完成global事務的兩階段提交。
RCBG: Result Cache Background Process。這個程式用來處理RAC上Result Cache相關的訊息。
ACMS: Atomic Control File to Memory Service Process。作為每個例項上的agent來保證SGA的更新在RAC的所有例項上都是同步的,或者是全域性成功提交,或者由於一些問題而導致全域性回滾。
請參考官方文件:
Oracle? Database Reference
11g Release 2 (11.2)
Part Number E25513-03
F Background Processes
My Oracle Support文件:
New Background Processes In 11g (Doc ID 444149.1)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24585765/viewspace-1193258/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫介紹資料庫
- 資料庫介紹--初識資料庫資料庫
- L10資料庫——資料庫介紹資料庫
- HSQL 資料庫介紹(1)--簡介SQL資料庫
- MySQL資料庫鎖介紹MySql資料庫
- hhdb資料庫介紹(4)資料庫
- 資料庫安全知識介紹資料庫
- HSQL 資料庫介紹(2)--使用SQL資料庫
- QuestDB時序資料庫介紹資料庫
- StackGres 1.6 資料庫平臺工程功能介紹以及快速上手資料庫
- H2 資料庫介紹(1)--簡介資料庫
- 介紹些Golang常用工具庫(偏後臺方向)Golang
- 大資料和Hadoop平臺介紹大資料Hadoop
- hhdb資料庫介紹(9-15)資料庫
- hhdb資料庫介紹(9-5)資料庫
- hhdb資料庫介紹(9-1)資料庫
- hhdb資料庫介紹(9-2)資料庫
- hhdb資料庫介紹(9-3)資料庫
- hhdb資料庫介紹(9-11)資料庫
- hhdb資料庫介紹(8-3)資料庫
- hhdb資料庫介紹(9-12)資料庫
- MongoDB 資料庫介紹及安裝MongoDB資料庫
- Oracle資料庫審計功能介紹Oracle資料庫
- 資料庫基礎知識介紹!資料庫
- 資料中臺以及資料倉儲的介紹
- 資料庫複製(一)–複製介紹資料庫
- H2 資料庫介紹(2)--使用資料庫
- mysql的 information_schema 資料庫介紹MySqlORM資料庫
- 第一章---資料庫介紹資料庫
- 達夢透明分散式資料庫介紹分散式資料庫
- 【RAC】Oracle RAC上線測試場景介紹Oracle
- 關係型資料庫與非關係型資料庫介紹!資料庫
- 國產資料庫:達夢資料庫的幾個版本介紹資料庫
- 資料中臺(介紹篇)
- 對GaussDB資料庫和資料管理的簡單介紹資料庫
- DBAPI 資料介面釋出平臺功能介紹API
- 關於資料庫 statistics_level的介紹資料庫
- 資料庫系列:MySQL InnoDB鎖機制介紹資料庫MySql
- GaussDB資料庫基礎函式介紹1資料庫函式