<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        有關延遲塊兒清除、快照過舊、讀一致的總結

        來源:懂視網 責編:小采 時間:2020-11-09 14:10:12
        文檔

        有關延遲塊兒清除、快照過舊、讀一致的總結

        有關延遲塊兒清除、快照過舊、讀一致的總結:有關延遲塊兒清除、快照過舊、讀一致的總結,希望把這三個知識點串聯一起做個總結,沒有巨細無遺的寫完每個地方,歡迎大家一起討論,如果有前輩指出錯誤的地方更是不勝感激。 Blockcleanout 并不是指把臟塊兒寫入磁盤,只是單純的指把DB buffer中一個塊
        推薦度:
        導讀有關延遲塊兒清除、快照過舊、讀一致的總結:有關延遲塊兒清除、快照過舊、讀一致的總結,希望把這三個知識點串聯一起做個總結,沒有巨細無遺的寫完每個地方,歡迎大家一起討論,如果有前輩指出錯誤的地方更是不勝感激。 Blockcleanout 并不是指把臟塊兒寫入磁盤,只是單純的指把DB buffer中一個塊

        有關延遲塊兒清除、快照過舊、讀一致的總結,希望把這三個知識點串聯一起做個總結,沒有巨細無遺的寫完每個地方,歡迎大家一起討論,如果有前輩指出錯誤的地方更是不勝感激。 Blockcleanout 并不是指把臟塊兒寫入磁盤,只是單純的指把DB buffer中一個塊從 di



        有關延遲塊兒清除、快照過舊、讀一致的總結,希望把這三個知識點串聯一起做個總結,沒有巨細無遺的寫完每個地方,歡迎大家一起討論,如果有前輩指出錯誤的地方更是不勝感激。

        Blockcleanout 并不是指把臟塊兒寫入磁盤,只是單純的指把DB buffer中一個塊從 dirty 變為 clean,表明這個塊里面的數據是干凈的、最新的,本質上是更新 block header 中的一個標志位——ITL(Interested Transaction List)和block SCN。

        什么是delayed block cleanout?
        每當事務commit 時,事務修改過的塊兒就會被 cleanout,不過Clean out有2種方式:fast commit cleanout和delayed blockcleanout。
        1.fastcommit cleanout 算是真正意義上的 cleanout,當做fast commit cleanout時,Oracle將事務commit 時的系統scn作為commitSCN,馬上更新block上 ITL 、block scn 和 undo segment header的Transaction table的slot(槽)上的 scn,三者是一致的。
        2.delayedblock cleanout 是將 cleanout 操作延后了,由于某些原因只是用commit SCN更新了undo segment header 的 Transaction table 上的slot scn,而并未做block上的更新,等待下次使用此block的時候,再用undo segment header 的 Transaction table 上的slot scn(與之前事務的commit SCN相同)去更新 block scn 和 ITL。(當下一次操作如SELECT,UPDATE,INSERT或DELETE訪問到這些塊時需要在讀入后完成塊清除)

        為什么要執行delayed block cleanout呢?
        這是出于性能考慮的,我們首先來看哪些塊會做delayed block cleanout
        前提:Oracle有一個modifiedblock list 結構(checkpoint queue機制?),用來記錄每個transaction更改過的block,每個transaction可以在這個list上面記錄大約10%buffercache這多的modified block。
        事務commit 時:
        更改過的block低于10%,則oracle可以根據modified block list定位到那些塊并做fast commit cleanout。
        更改過的block超過10%,則超出部分就做delayed block cleanout。
        未commit前,由于事務耗時太長已經被寫至磁盤的塊做delayed block cleanout。

        這里就可以看出,不立即cleanout 的原因有二,但本質都是不能立刻在DB buffer中找到對應的塊兒,前者是超出10%,沒有在list中記錄,后者是已經寫入磁盤,如果再重新讀回DB buffer再修改,IO太多,都影響性能。

        和快照過舊是什么關系?

        前提:別的會話用過這個塊兒(clean),或者正在占用這個塊兒(dirty),都會在塊兒上記錄ITL(itl、xid、flag、uda、scn\fsc)。

        1.當發出一條select語句時,ORACLE會記錄下這個時刻SCN,然后在buffer cache中查找需要的BLOCK,或者從磁盤上讀。

        2.首先要查看最近一個修改這個塊的事務的flag,如果需要cleanout 就馬上執行。如果執行成功或者不需要執行就接著比較ITLSCN和select SCN,如果ITL SCN > select SCN,證明塊兒的版本是比要select的新,要執行讀一致找舊版本。

        3.ORACLE就會根據ITL中的uba找到UNDO信息獲得該block的前鏡像,然后在buffercache 中構造出CR塊,此時ORALCE也會檢查構造出來的CR塊兒中ITL記錄的SCN,如果SCN還大于select時刻的SCN,那么一直重復構造前鏡像,直到找到需要的塊兒,這樣ORACLE就實現了多版本。但如果在構造前鏡像的過程中所需的UNDO信息被覆蓋了,就會報快照過舊的錯誤。所以簡單來說,是利用遞推方式去找到和自己select同一SCN的那個塊兒的版本,如果找不到就是快照過舊。

        而對于延遲清除的塊兒,盡管對應的事務已經commit,但自己本身還是dirty狀態。之前commit的時候只是更新undo segment header的Transaction table的slot(槽)上的 scn,而塊兒自己的itl 和 block scn卻沒有更新。當再次訪問到這個塊兒的時候,肯定要完成剩余的工作,即上面第二步說的馬上cleanout——更新這個塊兒的itl scn 和 blockscn。之前說過,如果clean執行成功就接著比較ITL SCN和selectSCN來決定是否需要要執行讀一致。但如果因為undo被覆蓋,就獲得不了commit SCN,連cleanout也不能執行,也就比較不了大小了。報錯還是快照過舊。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        有關延遲塊兒清除、快照過舊、讀一致的總結

        有關延遲塊兒清除、快照過舊、讀一致的總結:有關延遲塊兒清除、快照過舊、讀一致的總結,希望把這三個知識點串聯一起做個總結,沒有巨細無遺的寫完每個地方,歡迎大家一起討論,如果有前輩指出錯誤的地方更是不勝感激。 Blockcleanout 并不是指把臟塊兒寫入磁盤,只是單純的指把DB buffer中一個塊
        推薦度:
        標簽: 清除 快照 延遲
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 黄在线观看www免费看| 无遮挡免费一区二区三区| 午夜老司机永久免费看片| MM131亚洲国产美女久久| 成人在线免费视频| 亚洲AV成人潮喷综合网| 人成午夜免费视频在线观看| 亚洲性天天干天天摸| 91福利免费体验区观看区| 成人片黄网站色大片免费| 国产 亚洲 中文在线 字幕| av免费不卡国产观看| 中文字幕乱码亚洲无线三区| 三年片在线观看免费观看高清电影| 亚洲一区二区三区深夜天堂| 免费看污成人午夜网站| 亚洲精品无码你懂的| 久操免费在线观看| 亚洲人成电影网站| 女人18毛片免费观看| 大桥未久亚洲无av码在线| 亚洲精品久久久www| 两个人看www免费视频| 亚洲第一精品在线视频| 免费电视剧在线观看| 苍井空亚洲精品AA片在线播放| 亚洲欧洲久久av| 99re免费视频| 亚洲av无码一区二区三区在线播放| 国产免费牲交视频| 亚洲精品无码日韩国产不卡av| 亚洲Av无码乱码在线观看性色| 香蕉免费在线视频| 亚洲春黄在线观看| 国产成人高清精品免费软件| 国产精品hd免费观看| 亚洲精品视频在线观看视频| 日本无卡码免费一区二区三区| 91精品全国免费观看青青| 亚洲影视一区二区| 久久久久亚洲av成人无码电影 |