①在數(shù)據(jù)庫打開并運(yùn)行之后,控制文件中的系統(tǒng)檢查點(diǎn)scn、控制文件中的數(shù)據(jù)文件檢查點(diǎn)scn和每個(gè)數(shù)據(jù)文件頭中的啟動(dòng)scn都是相同的

②控制文件中的每個(gè)數(shù)據(jù)文件的終止scn都為null
③NORMAL或IMMEDIATE 關(guān)閉數(shù)據(jù)庫的過程中,系統(tǒng)會(huì)執(zhí)行一個(gè)檢查點(diǎn)動(dòng)作,這時(shí)所有數(shù)據(jù)文件的終止scn 都會(huì)設(shè)置成數(shù)據(jù)文件頭中的那個(gè)啟動(dòng)scn的值。
④在數(shù)據(jù)庫重新啟動(dòng)的時(shí),Oracle將執(zhí)行兩次檢查 ◆ 看數(shù)據(jù)文件頭中的ckpt計(jì)數(shù)器是否與對(duì)應(yīng)控制文件中的ckpt計(jì)數(shù)器一致。若相等,進(jìn)行第二次檢查 ◆ 比較文件頭中的啟動(dòng)scn和對(duì)應(yīng)控制文件中的終止scn進(jìn)行比較,如果終止scn等于啟動(dòng)scn,則不需要對(duì)那個(gè)文件進(jìn)行恢復(fù)
⑤數(shù)據(jù)庫打開之后,存儲(chǔ)在控制文件中的數(shù)據(jù)文件終止scn的值再次被更改為null,這表示數(shù)據(jù)文件已經(jīng)打開并能夠正常使用了
注:當(dāng)ABORT強(qiáng)制關(guān)閉數(shù)據(jù)庫時(shí)不進(jìn)行檢查點(diǎn)處理,所以終止scn仍然為無窮大。在下次啟動(dòng)期間,發(fā)現(xiàn)啟動(dòng)scn和終止scn不同,需要進(jìn)行線程恢復(fù)。
3、SCN的增加
①SCN(System Change Number)只要數(shù)據(jù)庫被修改,就會(huì)+1,而不是一定要進(jìn)行checkpoint,例如DML的發(fā)生即使沒有提交也會(huì)使SCN+1
注:SCN增加并不代表會(huì)在數(shù)據(jù)文件頭中表現(xiàn)出來,而是需要等到checkpoint執(zhí)行后才寫入(當(dāng)然可能已經(jīng)增加了很多)
②如果一個(gè)DML導(dǎo)致產(chǎn)生事務(wù),則會(huì)產(chǎn)生一個(gè)SCN。這個(gè)意思是說如果一個(gè)事務(wù)包含多個(gè)dml,則只有第一個(gè)初始產(chǎn)生事務(wù)的dml產(chǎn)生scn,提交的時(shí)候又是一個(gè)scn,如果一個(gè)事務(wù)只有一個(gè)dml,拿看起來就是dml產(chǎn)生一個(gè)scn,提交或者回滾產(chǎn)生一個(gè)scn。
③Oracle 10g內(nèi)部的SCN會(huì)默認(rèn)不管有沒有動(dòng)作,每隔3s自動(dòng)增加一次。其他需要增加的情況則再加。
④只有ckpt進(jìn)程才會(huì)修改文件頭中的checkpoint計(jì)數(shù)器和SCN,DBWR只會(huì)修改數(shù)據(jù)塊,即ckpt通知dbwr寫數(shù)據(jù)文件,寫完之后ckpt更新控制文件和數(shù)據(jù)文件頭。此時(shí)若DBWR發(fā)現(xiàn)數(shù)據(jù)塊的log block還沒有被寫入日志文件,則在dbwr寫塊之前通知llgwr把log buffer中的日志寫入log文件。
注:總結(jié)一下,日志切換必定出發(fā)ckpt,但ckpt不一定會(huì)出發(fā)llgwr,但是一定會(huì)觸發(fā)dbwr4、其他的SCN
①日志文件頭中包含了Low scn、Next scn,表示給日志文件包含有從Low scn到Next scn的redo record
注:當(dāng)系統(tǒng)運(yùn)行時(shí),日志文件的Next scn同樣為無窮大。而且需要注意:在恢復(fù)時(shí)不是用日志文件中的Low scn和Next scn來選擇恢復(fù)的日志文件,而是通過數(shù)據(jù)文件頭中的信息。
②數(shù)據(jù)塊中的SCN data block里面的SCN是當(dāng)block被更改的時(shí)候的SCN,而數(shù)據(jù)文件有那么多 block,自然不同的block有不同的SCN,block中存在block SCN和ITL中的commit SCN。block SCN 又在塊頭和塊位都有,若不一致意味著block損壞。而ITL中的commit SCN則跟consistent gets and delay block cleanout有關(guān)。
③v$database中的checkpoint_change# 和 dbms_flashback.get_system_change_number 不同。前者是作為數(shù)據(jù)庫的最后一次checkpoint是的SCN,而后者是系統(tǒng)的最新SCN,所以一般后者都會(huì)比前者大,而當(dāng)剛做完checkpoint時(shí)兩者會(huì)差不多。
④當(dāng)begin backup命令發(fā)出后,相關(guān)數(shù)據(jù)文件的checkpoint scn被凍結(jié)(以及狀態(tài)標(biāo)志被改變),其他一切照舊。例如:日志切換時(shí)checkpoint count正常遞增/檢查點(diǎn)照常寫文件,自然文件中的數(shù)據(jù)塊內(nèi)的各種scn也照常遞增。
不登高山,怎知天高;不臨深溪,焉知地厚!站在堅(jiān)實(shí)的土地上,做著生命中最真實(shí)的事情;像一棵挺拔的大樹,認(rèn)可自己的命運(yùn)并敢于迎接屬于這一方天空的風(fēng)風(fēng)雨雨。
網(wǎng)頁名稱:SCN的工作機(jī)制-創(chuàng)新互聯(lián)
本文來源:http://chinadenli.net/article32/dejpsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、服務(wù)器托管、ChatGPT、自適應(yīng)網(wǎng)站、靜態(tài)網(wǎng)站、動(dòng)態(tài)網(wǎng)站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)