日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Oracle DBWR,LGWR,CKPT,ARCH 触发条件 总结

發(fā)布時(shí)間:2025/7/14 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle DBWR,LGWR,CKPT,ARCH 触发条件 总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

. ?DBWR寫磁盤數(shù)據(jù)觸發(fā)條件

?????? 1. 當(dāng)進(jìn)程在輔助LRU鏈表和主LRU鏈表上掃描以查找可以覆蓋的buffer header[空閑緩沖區(qū)]時(shí),如果已經(jīng)掃描的buffer header的數(shù)量到達(dá)一定的限度(由隱藏參數(shù):_db_block_max_scan_pct決定)時(shí),觸發(fā)DBWR進(jìn)程? _db_block_max_scan_pct表示已經(jīng)掃描的buffer header的個(gè)數(shù)占整個(gè)LRU鏈表上buffer header總數(shù)的百分比。這時(shí),搜索可用buffer header的進(jìn)程掛起,在v$session_wait中表現(xiàn)為等待free buffer wait”事件,同時(shí)增加v$sysstat中的“dirty buffers inspected”的值。(can query by x$kvit)

?

?????? 這部分內(nèi)容在我的Blog里也有說(shuō)明:

????????????? Oracle Buffer Cache 原理

?????? ?????? http://blog.csdn.net/tianlesoftware/archive/2011/06/28/6573438.aspx


?????? 2.
當(dāng)DBWR在主LRUW鏈表上查找已經(jīng)更新完而正在等待被寫入數(shù)據(jù)文件的buffer header時(shí),如果找到的buffer header的數(shù)量超過(guò)一定限度(由隱藏參數(shù):_db_writer_scan_depth_pct決定)時(shí),DBWR就不再繼續(xù)往下掃描了,而轉(zhuǎn)到輔助LRUW鏈表上將其上的臟數(shù)據(jù)塊寫入數(shù)據(jù)文件_db_writer_scan_depth_pct表示已經(jīng)掃描的臟數(shù)據(jù)塊的個(gè)數(shù)占整個(gè)主LRUW鏈表上buffer header總數(shù)的百分比。
?????? 3.
如果主LRUW鏈表和輔助LRUW鏈表上的臟數(shù)據(jù)塊的總數(shù)超過(guò)一定限度,也將觸發(fā)DBWR進(jìn)程。該限度由隱藏參數(shù):_db_large_dirty_queue決定。
?????? 4.
發(fā)生增量檢查點(diǎn)(incremental checkpoint)或完全檢查點(diǎn)(complete checkpoint)時(shí)觸發(fā)DBWR
?????? 5.
每隔三秒鐘啟動(dòng)一次DBWR
?????? 6.
將表空間設(shè)置為離線(offline)狀態(tài)時(shí)觸發(fā)DBWR
?????? 7.
發(fā)出命令:alter tablespace … begin backup,從而將表空間設(shè)置為熱備份狀態(tài)時(shí)觸發(fā)DBWR
?????? 8.
將表空間設(shè)置為只讀狀態(tài)時(shí),觸發(fā)DBWR
?????? 9.
刪除對(duì)象時(shí)(比如刪除某個(gè)表)會(huì)觸發(fā)DBWR

?

.? LGWR寫聯(lián)機(jī)日志文件觸發(fā)條件

?????? 1. 超時(shí)(timeout)

?????? 當(dāng)LGWR處于空閑狀態(tài)時(shí),它依賴于rdbms ipc message等待,處于休眠狀態(tài),直到3秒超時(shí)時(shí)間到。?????? 如果LGWR發(fā)現(xiàn)有redo需要寫出,那么LGWR將執(zhí)行寫出操作,log file parallel write等待事件將會(huì)出現(xiàn)。

?????? 2.
閾值達(dá)到
??????
只要一個(gè)進(jìn)程在log buffer中分配空間,已經(jīng)使用的Log buffer的數(shù)量將被計(jì)算。如果使用的塊的數(shù)量大于或等于_log_io_size參數(shù)設(shè)置,那么將會(huì)觸發(fā)LGWR寫操作。
??????
如果此時(shí)LGWR未處于活動(dòng)狀態(tài),那么LGWR將被通知去執(zhí)行后臺(tái)寫操作。
??????
缺省的_log_io_size等于1/3 log buffer大小,上限值為1M,此參數(shù)在X$KSPPSV中顯示的0值,意為缺省值。也就是,LGWR將在Min(1M,1/3 log buffer size)時(shí)觸發(fā)。

?????? 注意此處的log buffer size是以log block來(lái)衡量的。此值通常為512 bytes.

?????? 3.
提交
??????
當(dāng)一個(gè)事物提交時(shí),在redo stream中將記錄一個(gè)提交標(biāo)志。
??????
在這些redo被寫到磁盤上之前,這個(gè)事物是不可恢復(fù)的。所以,在事務(wù)返回成功標(biāo)志給用戶前,必須等待LGWR寫完成。進(jìn)程通知LGWR寫,并且以log file sync事件開(kāi)始休眠,超時(shí)時(shí)間為1秒。
?????? Oracle
的隱含參數(shù)_wait_for_sync參數(shù)可以設(shè)置為false避免redo file sync的等待,但是就將無(wú)法保證事務(wù)的恢復(fù)性.注意,在遞歸調(diào)用(recursive calls)中的提交(比如過(guò)程中的提交)不需要同步redo直到需要返回響應(yīng)給用戶。因此遞歸調(diào)用僅需要同步返回給用戶調(diào)用之前的最后一次Commit操作的RBA
??????
存在一個(gè)SGA變量用以記錄redo線程需要同步的log block number
??????
如果多個(gè)提交在喚醒LGWR之前發(fā)生,此變量記錄最高的log block number,在此之前的所有redo都將被寫入磁盤。這有時(shí)候被稱為組提交(group commit).

?

?????? 4. DBWR寫之前
??????
如果DBWR將要寫出的數(shù)據(jù)的高RBA超過(guò)LGWRon-Disk RBADBWRpost LGWR去執(zhí)行寫出。
??????
Oracle8i之前,此時(shí)DBWR將等待log file sync事件。
??????
Oracle8i開(kāi)始,DBWR把這些Block放入一個(gè)defer隊(duì)列,同時(shí)通知LGWR執(zhí)行redo寫出,DBWR可以繼續(xù)執(zhí)行無(wú)需等待的數(shù)據(jù)寫出。

?

.? CKPT發(fā)送CHECKPOINT信號(hào)的觸發(fā)條件

?????? 1. log_checkpoint_timeout時(shí)間達(dá)到
?????? 2.
當(dāng)前redo日志已經(jīng)寫夠log_checkpoint_internavl*操作系統(tǒng)塊大小
?????? 3. redo log switch
?????? 4. alter system checkpoint
?????? 5. alter tablespace XXX begin backup
end backup的時(shí)候
?????? 6. alter tablespace , datafile offline, shutdown immediate, direct read
的時(shí)候;

??????

.? ARCH進(jìn)程日志歸檔觸發(fā)條件

?????? 1. 如果設(shè)置了自動(dòng)歸檔模式,則日志切換時(shí),由LGWR進(jìn)程觸發(fā)ARCH進(jìn)程進(jìn)行歸檔。這是最常見(jiàn)的方式。

?????? 2. 可以手工進(jìn)行歸檔。使用命令:alter system archive log current表示啟動(dòng)ARCH進(jìn)程,從而對(duì)當(dāng)前的日志文件進(jìn)行歸檔。

?????? 3. 如果ARCH進(jìn)程在5分鐘以后還沒(méi)有接收到LGWR的通知,則發(fā)生超時(shí),于是ARCH被喚醒以檢查是否存在需要?dú)w檔的日志文件。ARCH通過(guò)讀取控制文件中的信息來(lái)決定是否需要?dú)w檔以及應(yīng)該歸檔哪些日志文件。但是在進(jìn)行實(shí)例恢復(fù)或者介質(zhì)恢復(fù)的過(guò)程中,ARCH進(jìn)程不會(huì)啟動(dòng)。

?

?

轉(zhuǎn)載自: http://space.itpub.net/23071790/viewspace-692142

?

?

?

-------------------------------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(滿);?? DBA2 群:62697977(滿)?? DBA3 群:62697850(滿)??

DBA 超級(jí)群:63306533(滿);? DBA4 群: 83829929? DBA5群: 142216823???

DBA6 群:158654907? 聊天 群:40132017?? 聊天2群:69087192

--加群需要在備注說(shuō)明Oracle表空間和數(shù)據(jù)文件的關(guān)系,否則拒絕申請(qǐng)

轉(zhuǎn)載于:https://www.cnblogs.com/Hiberniane/archive/2011/06/29/2488406.html

總結(jié)

以上是生活随笔為你收集整理的Oracle DBWR,LGWR,CKPT,ARCH 触发条件 总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。