溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2021-11-09 10:20:06 來(lái)源:億速云 閱讀:223 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫(kù)

這篇文章主要介紹“怎么理解Oracle RAC分布式資源管理”,在日常操作中,相信很多人在怎么理解Oracle RAC分布式資源管理問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么理解Oracle RAC分布式資源管理”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

因?yàn)榧旱姆植际郊軜?gòu),通過(guò)進(jìn)程間的通信完成資源的共享、分發(fā)、同步對(duì)分布式鎖管理實(shí)現(xiàn)就變得尤為必要。 有了這種通信的存在,在與集群中的其他實(shí)例上LMD進(jìn)程完成通信鎖定一個(gè)資源后,無(wú)論有多少DLM實(shí)例發(fā)生故障,都不會(huì)丟失有關(guān)鎖資源的重要信息。但是需要注意的一點(diǎn)是數(shù)據(jù)庫(kù)的崩潰恢復(fù)(能夠恢復(fù)在中止實(shí)例的緩沖區(qū)高速緩存中丟失的塊)不是DLM的功能,塊的全局高速緩存處理仍然使用相同的“寫入前刷日志”規(guī)則來(lái)確保持久化。通過(guò)前面系列文章我們知道GRD或DLM是由GES組件和GCS組建組成,而這些功能的進(jìn)程(LMON、LMS、LMD等)實(shí)現(xiàn)我們也有了大致的了解?,F(xiàn)在我們來(lái)更進(jìn)一步的了解這些進(jìn)程的函數(shù)實(shí)現(xiàn)和參數(shù)調(diào)整。

DLM存在于群集的每個(gè)實(shí)例中。

 - 協(xié)調(diào)不同實(shí)例之間的請(qǐng)求和對(duì)共享資源的訪問(wèn)。

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

 - 資源可用時(shí)授予和通知進(jìn)程。

 - 當(dāng)其他進(jìn)程請(qǐng)求鎖時(shí)通知鎖的所有者。

容錯(cuò):DLM可以承受n-1個(gè)節(jié)點(diǎn)故障。 

死鎖檢測(cè):DLM檢測(cè)并報(bào)告死鎖。

LMD進(jìn)程:

LMD0是DLM的核心,LMD0處理所有鎖定操作和資源創(chuàng)建,檢測(cè)死鎖以及向其他LMD0發(fā)送消息。LMD0的處理統(tǒng)計(jì)信息可以通過(guò)兩個(gè)視圖V$DLM_CONVERT_LOCAL和V$DLM_CONVERT_REMOTE查看。統(tǒng)計(jì)信息由初始化參數(shù)timed_statistics控制,在11g版本默認(rèn)為TRUE。

假設(shè)當(dāng)前在轉(zhuǎn)換隊(duì)列上等待的鎖定符合授權(quán)隊(duì)列,則LMD會(huì)使用move-scan-convert流程進(jìn)行定期檢查。

LMD0的主循環(huán):kjmdm

? lock db鎖定:

 - 停止任何死鎖檢測(cè):kjdddei

 - 鎖定并重置:kjfzfcl

在鎖定狀態(tài)下,無(wú)法從DLM獲取任何鎖定或創(chuàng)建任何新資源。在重構(gòu)期間鎖定整個(gè)GRD,以便可以快速?gòu)墓?jié)點(diǎn)故障中恢復(fù)。

? lock db解鎖:

 - 檢測(cè)鎖轉(zhuǎn)換:kjcvscn。

 - 死鎖檢測(cè):kjddits / kjddscn。 

 - 清理恢復(fù)域:kjprsem。

 - 更新統(tǒng)計(jì)信息:kjxstc。

 - 發(fā)送流控制消息:kjctssb。

LMON進(jìn)程:

由前面系列文章我們知道LMON進(jìn)程主要負(fù)責(zé)整個(gè)數(shù)據(jù)庫(kù)集群層面的一致性關(guān)系(CGS),監(jiān)控整個(gè)集群的全局隊(duì)列和資源。根據(jù)前面DLM緩存資源和鎖定結(jié)構(gòu)的介紹。當(dāng)集群存在不再需要的資源時(shí)就會(huì)將他放置在一個(gè)空閑列表上。然后LMON調(diào)用kjrchc清除資源的DLM緩存。

LMON進(jìn)程的使用的主要函數(shù)如下:

 - LMON的主循環(huán):kjfcln

 - 偵聽本地消息:kjcswmg

 - 響應(yīng)重構(gòu)事件:kjfcrfg

 - 清除GES緩存:kjrchc

LMS進(jìn)程:

LMS是整個(gè)Cache Fusion體系最活躍和最忙碌的進(jìn)程。它負(fù)責(zé)維護(hù)GRD中的數(shù)據(jù)塊資源信息。

LMS進(jìn)程數(shù)由_lm_lms確定默認(rèn)值為max(#CPU/ 4,2)

1.掃描具有可授予轉(zhuǎn)換鎖的PCM資源。

2.處理降級(jí)轉(zhuǎn)換隊(duì)列由kclpbi處理。

3.如果消息正在排隊(duì)并且超過(guò)_side_channel_batch_timeout參數(shù)設(shè)置的時(shí)間,則flush消息。

4.處理PCM鎖的遠(yuǎn)程消息。

GES資源和鎖

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

默認(rèn)情況下_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資源鎖初始分配數(shù)量可以通過(guò)查詢隱含參數(shù)_lm_locks。同樣的如果用盡,則可以在shared_pool中申請(qǐng)分配更多鎖資源。ges鎖的初始分配,使用和限制信息可以通過(guò)v$resource_limit的ges_locks值獲得(SELECT * FROM V$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE 'ges%' ;)

默認(rèn)情況下_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資源的初始分配數(shù)量可以由隱含參數(shù)_gcs_resources 配置或默認(rèn)max(1.1 * _db_block_buffers,2500)。如果耗盡,則從shared_pool分配的更多資源以1024為增量單位。gcs資源的初始分配,使用和限制信息可以通過(guò)v$resource_limit的gcs_resources值獲得(SELECT * FROMV$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE 'gcs%' ;)

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

DLM進(jìn)程

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

到此,關(guān)于“怎么理解Oracle RAC分布式資源管理”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI