日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

?

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

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

?

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

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

?

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

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

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

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

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

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

?

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

?

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

?????? 1. log_checkpoint_timeout時間達到
?????? 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的時候
?????? 6. alter tablespace , datafile offline, shutdown immediate, direct read
的時候;

??????

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

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

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

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

?

?

轉(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 超級群:63306533(滿);? DBA4 群: 83829929? DBA5群: 142216823???

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

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

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

總結(jié)

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

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