來源:互聯網網民 2008-08-15 05:14:05
評論Oracle數據庫SCN號詳解:
系統檢查點scn(v$database(checkpoint_change#))
數據文件檢查點(v$datafile(checkpoint_change#))
數據文件終止scn(v$datafile(last_change#))
數據文件中存放的檢查點
啓動scn (v$datafile_header(checkpoint_change#)
1、系統檢查點scn
當一個檢查點動作完成之後,Oracle就把系統檢查點的SCN存儲到控制文件中。
select checkpoint_change# from v$database
2、數據文件檢查點scn
當一個檢查點動作完成之後,Oracle就把每個數據文件的scn單獨存放在控制文件
中。
select name,checkpoint_change# from v$datafile
3、啓動scn
Oracle把這個檢查點的scn存儲在每個數據文件的文件頭中,這個值稱爲啓動scn,
因爲它用于在數據庫實例啓動時,檢查是否需要執行數據庫恢複。
select name,checkpoint_change# from v$datafile_header
4、終止scn
每個數據文件的終止scn都存儲在控制文件中。
select name,last_change# from v$datafile
在正常的數據庫操作過程中,所有正處于聯機讀寫模式下的數據文件的終止scn都爲null.
5、在數據庫運行期間的scn值
在數據庫打開並運行之後,控制文件中的系統檢查點、控制文件中的數據文件檢查點scn
和每個數據文件頭中的啓動scn都是相同的。控制文件中的每個數據文件的終止scn都爲null.
在安全關閉數據庫的過程中,系統會執行一個檢查點動作,這時所有數據文件的終止scn
都會設置成數據文件頭中的那個啓動scn的值。在數據庫重新啓動的時候,
Oracle將文件頭中的那個啓動scn與數據庫文件檢查點scn進行比較,
如果這兩個值相互匹配,oracle接下來還要比較數據文件頭中的啓動scn和控制文件
中數據文件的終止scn。如果這兩個值也一致,就意味著所有數據塊多已經提交,所有
對數據庫的修改都沒有在關閉數據庫的過程中丟失,因此這次啓動數據庫的過程
也不需要任何恢複操作,此時數據庫就可以打開了。當所有的數據庫都打開之後,
存儲在控制文件中的數據文件終止scn的值再次被更改爲null,
這表示數據文件已經打開並能夠正常使用了。
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
Oracle數據庫SCN號詳解:
系統檢查點scn(v$database(checkpoint_change#))
數據文件檢查點(v$datafile(checkpoint_change#))
數據文件終止scn(v$datafile(last_change#))
數據文件中存放的檢查點
啓動scn (v$datafile_header(checkpoint_change#)
1、系統檢查點scn
當一個檢查點動作完成之後,Oracle就把系統檢查點的SCN存儲到控制文件中。
select checkpoint_change# from v$database
2、數據文件檢查點scn
當一個檢查點動作完成之後,Oracle就把每個數據文件的scn單獨存放在控制文件
中。
select name,checkpoint_change# from v$datafile
3、啓動scn
Oracle把這個檢查點的scn存儲在每個數據文件的文件頭中,這個值稱爲啓動scn,
因爲它用于在數據庫實例啓動時,檢查是否需要執行數據庫恢複。
select name,checkpoint_change# from v$datafile_header
4、終止scn
每個數據文件的終止scn都存儲在控制文件中。
select name,last_change# from v$datafile
在正常的數據庫操作過程中,所有正處于聯機讀寫模式下的數據文件的終止scn都爲null.
5、在數據庫運行期間的scn值
在數據庫打開並運行之後,控制文件中的系統檢查點、控制文件中的數據文件檢查點scn
和每個數據文件頭中的啓動scn都是相同的。控制文件中的每個數據文件的終止scn都爲null.
在安全關閉數據庫的過程中,系統會執行一個檢查點動作,這時所有數據文件的終止scn
都會設置成數據文件頭中的那個啓動scn的值。在數據庫重新啓動的時候,
Oracle將文件頭中的那個啓動scn與數據庫文件檢查點scn進行比較,
如果這兩個值相互匹配,oracle接下來還要比較數據文件頭中的啓動scn和控制文件
中數據文件的終止scn。如果這兩個值也一致,就意味著所有數據塊多已經提交,所有
對數據庫的修改都沒有在關閉數據庫的過程中丟失,因此這次啓動數據庫的過程
也不需要任何恢複操作,此時數據庫就可以打開了。當所有的數據庫都打開之後,
存儲在控制文件中的數據文件終止scn的值再次被更改爲null,
這表示數據文件已經打開並能夠正常使用了。