久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么理解Oracle RAC分布式資源管理

169次閱讀
沒有評論

共計 3102 個字符,預計需要花費 8 分鐘才能閱讀完成。

這篇文章主要介紹“怎么理解 Oracle RAC 分布式資源管理”,在日常操作中,相信很多人在怎么理解 Oracle RAC 分布式資源管理問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么理解 Oracle RAC 分布式資源管理”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

因為集群的分布式架構, 通過進程間的通信完成資源的共享、分發、同步對分布式鎖管理實現就變得尤為必要。  有了這種通信的存在,在與集群中的其他實例上 LMD 進程完成通信鎖定一個資源后,無論有多少 DLM 實例發生故障,都不會丟失有關鎖資源的重要信息。但是需要注意的一點是數據庫的崩潰恢復(能夠恢復在中止實例的緩沖區高速緩存中丟失的塊)不是 DLM 的功能,塊的全局高速緩存處理仍然使用相同的“寫入前刷日志”規則來確保持久化。通過前面系列文章我們知道 GRD 或 DLM 是由 GES 組件和 GCS 組建組成,而這些功能的進程(LMON、LMS、LMD 等)實現我們也有了大致的了解。現在我們來更進一步的了解這些進程的函數實現和參數調整。

DLM 存在于群集的每個實例中。

 –  協調不同實例之間的請求和對共享資源的訪問。

 –  保存集群中所有鎖的清單。

 –  資源可用時授予和通知進程。

 – 當其他進程請求鎖時通知鎖的所有者。

容錯:DLM 可以承受 n - 1 個節點故障。 

死鎖檢測:DLM 檢測并報告死鎖。

LMD 進程:

LMD0 是 DLM 的核心,LMD0 處理所有鎖定操作和資源創建,檢測死鎖以及向其他 LMD0 發送消息。LMD0 的處理統計信息可以通過兩個視圖 V$DLM_CONVERT_LOCAL 和 V$DLM_CONVERT_REMOTE 查看。統計信息由初始化參數 timed_statistics 控制,在 11g 版本默認為 TRUE。

假設當前在轉換隊列上等待的鎖定符合授權隊列,則 LMD 會使用 move-scan-convert 流程進行定期檢查。

LMD0 的主循環:kjmdm

? lock db 鎖定:

 – 停止任何死鎖檢測:kjdddei

 – 鎖定并重置:kjfzfcl

在鎖定狀態下,無法從 DLM 獲取任何鎖定或創建任何新資源。在重構期間鎖定整個 GRD,以便可以快速從節點故障中恢復。

? lock db 解鎖:

 –  檢測鎖轉換:kjcvscn。

 –  死鎖檢測:kjddits / kjddscn。 

 –  清理恢復域:kjprsem。

 –  更新統計信息:kjxstc。

 –  發送流控制消息:kjctssb。

LMON 進程:

由前面系列文章我們知道 LMON 進程主要負責整個數據庫集群層面的一致性關系(CGS),監控整個集群的全局隊列和資源。根據前面 DLM 緩存資源和鎖定結構的介紹。當集群存在不再需要的資源時就會將他放置在一個空閑列表上。然后 LMON 調用 kjrchc 清除資源的 DLM 緩存。

LMON 進程的使用的主要函數如下:

 – LMON 的主循環:kjfcln

 –  偵聽本地消息:kjcswmg

 –  響應重構事件:kjfcrfg

 –  清除 GES 緩存:kjrchc

LMS 進程:

LMS 是整個 Cache Fusion 體系最活躍和最忙碌的進程。它負責維護 GRD 中的數據塊資源信息。

LMS 進程數由_lm_lms 確定默認值為 max(#CPU/ 4,2)

1. 掃描具有可授予轉換鎖的 PCM 資源。

2. 處理降級轉換隊列由 kclpbi 處理。

3. 如果消息正在排隊并且超過_side_channel_batch_timeout 參數設置的時間,則 flush 消息。

4. 處理 PCM 鎖的遠程消息。

GES 資源和鎖

GES 資源即 non-PCM 資源的初始分配數量可以通過查詢隱含參數_lm_ress。如果用盡,則可以在 shared_pool 中申請分配更多資源。ges 資源的初始分配,使用和限制信息可以通過 v$resource_limit 的 ges_ress 值獲得(SELECT * FROM V$RESOURCE_LIMITWHERE RESOURCE_NAME LIKE ges%)

默認情況下_lm_ress=1.1 * (localres +(number_of_instance-1) * localres / number_of_instance )

localres = processes + dlm_locks + transactions+ enqueue_resources+ db_files+7+

parallel_max_servers *cluster_database_instance+ parallel_max_servers + cluster_database_instance+200

GES 資源鎖初始分配數量可以通過查詢隱含參數_lm_locks。同樣的如果用盡,則可以在 shared_pool 中申請分配更多鎖資源。ges 鎖的初始分配,使用和限制信息可以通過 v$resource_limit 的 ges_locks 值獲得(SELECT * FROM V$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE ges%)

默認情況下_lm_locks=(localres+_enqueue_locks)+ (number_of_instance-1 * (localres+_enqueue_locks) / number_of_instance)

localres = processes + dlm_locks +transactions + enqueue_resources + db_files + 7 +

parallel_max_servers *cluster_database_instance+ parallel_max_servers + cluster_database_instance+200

GCS 資源和鎖

GCS 資源即 PCM 資源的初始分配數量可以由隱含參數_gcs_resources 配置或默認 max(1.1 * _db_block_buffers,2500)。如果耗盡,則從 shared_pool 分配的更多資源以 1024 為增量單位。gcs 資源的初始分配,使用和限制信息可以通過 v$resource_limit 的 gcs_resources 值獲得(SELECT * FROMV$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE gcs%)

GCS 資源鎖即 PCM 資源鎖的初始分配數量可以由隱含參數_pcm_shadow_locks 配置或則默認 max(1.1 * _db_block_buffers,2500)。如果耗盡,則從 shared_pool 分配的更多資源以 1024 為增量單位。gcs 資源的初始分配使用和限制信息可以通過 v$resource_limit 的 gcs_shadows 值獲得(SELECT * FROMV$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE gcs%)

DLM 進程

DLM 進程數量初始分配數量可以通過設置隱含參數_lm_procs 或 max(( 64 + 256) + (number_of_instance-1), processes ) 如果耗盡,則從 shared_pool 分配更多資源。DLM 進程的初始分配,使用和限制信息可以通過 v$resource_limit 的 ges_locks 值獲得(SELECT * FROM V$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE ges%)

到此,關于“怎么理解 Oracle RAC 分布式資源管理”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-24發表,共計3102字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 苏尼特右旗| 大竹县| 六枝特区| 曲麻莱县| 化德县| 凤庆县| 东乡族自治县| 合水县| 贵德县| 绥化市| 夏河县| 日照市| 徐州市| 商南县| 晋江市| 新田县| 文成县| 岑巩县| 广宁县| 毕节市| 武鸣县| 石棉县| 奈曼旗| 临潭县| 洮南市| 荆门市| 奉贤区| 濮阳市| 瑞金市| 彭山县| 文山县| 湖北省| 蛟河市| 城市| 威远县| 广水市| 宝山区| 广南县| 屯留县| 白山市| 宣城市|