搞定Oracle SCN -system change number
生活随笔
收集整理的這篇文章主要介紹了
搞定Oracle SCN -system change number
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
SCN是Oracle的內(nèi)部時(shí)鐘,用來反映數(shù)據(jù)庫中所有變化,在運(yùn)行過程中不斷更新。SCN種類包括:
(1)系統(tǒng)當(dāng)前SCN (2)Checkpoint SCN(注意只會(huì)隨著檢查點(diǎn)的發(fā)生而被更新:但是在熱備模式下,checkpoint時(shí)該SCN不變) a.Stop SCN(保存在控制文件中,又稱END SCN) 實(shí)例正常運(yùn)行時(shí)STOP SCN為空,當(dāng)實(shí)例正常關(guān)閉時(shí),oracle會(huì)在控制文件中記錄下每個(gè)數(shù)據(jù)文件對應(yīng)的STOP SCN號(hào),用來再啟動(dòng)時(shí)檢查控制文件中所有數(shù)據(jù)文件對應(yīng)的STOP SCN號(hào)是否都存在并且一致,是則表示上一次實(shí)例關(guān)閉正常,所有數(shù)據(jù)文件對應(yīng)的緩存數(shù)據(jù)都已同步到磁盤,故無需進(jìn)行redo/undo實(shí)例恢復(fù)。否則若發(fā)現(xiàn)控制文件中有某數(shù)據(jù)文件對應(yīng)的STOP SCN號(hào)為空,則表明上次實(shí)例關(guān)閉非正常,此次啟動(dòng)要進(jìn)行實(shí)例恢復(fù)。因此STOP SCN號(hào)用來判斷下次啟動(dòng)時(shí)是否需要進(jìn)行實(shí)例恢復(fù)。(如果系統(tǒng)斷電,那么控制文件中的STOP SCN還是為空) SQL>select name,last_change# from v$datafile; ? ? --online的數(shù)據(jù)文件對應(yīng)的last_change#都是空,offline的數(shù)據(jù)文件對應(yīng)的last_change#有值 SQL>shutdown immediate; SQL>startup mount; SQL>select name,last_change# from v$datafile; ? ?如下示例: 首先通過select name,last_change# from v$datafile;查詢到test01.dbf文件存在SCN號(hào),是因?yàn)槲覀儗⒃摂?shù)據(jù)文件offline了,當(dāng)我們online該數(shù)據(jù)文件時(shí),報(bào)出該數(shù)據(jù)文件需要介質(zhì)恢復(fù),直接recover該數(shù)據(jù)文件即可。重新online該數(shù)據(jù)文件就不會(huì)有問題。重新執(zhí)行select name,last_change# from v$datafile;時(shí),該數(shù)據(jù)文件對應(yīng)的SCN號(hào)就沒有了。 ********************************************************************************************************************** ? ? ? START SCN是我們判斷是否需要介質(zhì)恢復(fù)的唯一依據(jù),介質(zhì)恢復(fù)就是更新SCN號(hào)(關(guān)機(jī)時(shí),控制文件中的stop SCN號(hào)就是copy的數(shù)據(jù)文件中start SCN號(hào))。 ? ??? ? ? *********************************************************************************************************************** **************************************************************************************************************** 總結(jié):1,SCN分兩大類:(1)系統(tǒng)當(dāng)前SCN,用于記錄用戶對數(shù)據(jù)庫的所有操作;(2)checkpoint SCN,只會(huì)隨著檢查點(diǎn)的刷新而被更新。 2,checkpoint SCN又分為4小類,主要用戶數(shù)據(jù)庫開機(jī)時(shí)判斷是否需要介質(zhì)恢復(fù)和實(shí)例恢復(fù)。 3,首先判斷start SCN號(hào)用于判斷開機(jī)時(shí)所有數(shù)據(jù)文件的一致性;stop SCN號(hào)用于判斷是否正常關(guān)機(jī)(實(shí)例恢復(fù));datafile checkpoint SCN號(hào)用于判斷數(shù)據(jù)文件和控制文件的一致性;system checkpoint SCN用于判斷控制文件自身的一致性。 補(bǔ)充:數(shù)據(jù)庫open階段,除了檢查SCN外,還會(huì)檢查一個(gè)數(shù)據(jù),即檢查點(diǎn)計(jì)數(shù)(Checkpoint CNT),而且這個(gè)檢查點(diǎn)計(jì)數(shù)要第一個(gè)檢查。 轉(zhuǎn)載請注明出處:http://www.cnblogs.com/pengineer/p/4367008.html轉(zhuǎn)載于:https://www.cnblogs.com/pengineer/p/4367008.html
總結(jié)
以上是生活随笔為你收集整理的搞定Oracle SCN -system change number的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net 操作xml
- 下一篇: [经典算法] 河内塔