Oracle RAC後台程序介紹

2021-08-31 18:35:59 字數 2106 閱讀 6242

在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平台的安裝手冊 

linux-6-64下安裝oracle 12c筆記 

在centos 6.4下安裝oracle 11gr2(x64) 

oracle 11gr2 在vmware虛擬機器中安裝步驟 

debian 下 安裝 oracle 11g xe r2 

Oracle rac 集群服務介紹

oracle clusterware 介紹 oracle clusterware 是乙個集群軟體,使用它做集群的所有作業系統必須相同 使用oracle clusterware 將多個裝有相同作業系統的伺服器 到一起,當對這些集群的伺服器進行訪問時,就像訪問一台伺服器一樣。oracle cluster...

Oracle後台程序的功能簡單介紹

dbwr程序 該程序執行將緩衝區寫入資料檔案,是負責緩衝儲存區管理的乙個oracle後台程序。當緩衝區中的一緩衝區被修改,它被標誌為 弄髒 dbwr的主要任務是將 弄髒 的緩衝區寫入磁碟,使緩衝區保持 乾淨 由於緩衝儲存區的緩衝區填入資料庫或被使用者程序弄髒,未用的緩衝區的數目減 少。當未用的緩衝區...

掃盲 ORACLE RAC的百科介紹

是oracle新版資料庫中採用的一項新技術,也是oracle資料庫支援網格計算環境的核心技術。oracle rac主要支援oracle9i 10g 11g版本,可以可以支援24 x 7 有效的資料庫應用 系統,在低成本伺服器上構建高可用性資料庫系統,並且自由部署應用,無需修改 在oracle rac...