SCN和Checkpoint_Change#的關係

我們知道ORACLE中有SCN(System Change

Number)和Checkpoint_Change#,那這兩者的關係是什麼呢,其實Checkpoint_Change#是來源於SCN,SCN是時刻在變化的,Checkpoint_Change#是在數據發生了檢查點的時候才改變的,它的值來源於SCN.下面通過一個例子來說明.

1.獲取當前的SCN

SQL> select dbms_flashback.get_system_change_number() from dual;

DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER()

-----------------------------------------

1275075

2.產生檢查點

SQL> alter system checkpoint;

System altered.

3.從數據文件和數據頭文件中查看檢查點

SQL> column name format a50;

SQL> select name,checkpoint_change# from v$datafile;

NAME CHECKPOINT_CHANGE#

-------------------------------------------------- ------------------

E:APPADMINISTRATORORADATAORCLSYSTEM01.DBF 1275080

E:APPADMINISTRATORORADATAORCLSYSAUX01.DBF 1275080

E:APPADMINISTRATORORADATAORCLUNDOTBS01.DBF 1275080

E:APPADMINISTRATORORADATAORCLUSERS01.DBF 1275080

SQL> select name, checkpoint_change# from v$datafile_header;

NAME CHECKPOINT_CHANGE#

-------------------------------------------------- ------------------

E:APPADMINISTRATORORADATAORCLSYSTEM01.DBF 1275080

E:APPADMINISTRATORORADATAORCLSYSAUX01.DBF 1275080

E:APPADMINISTRATORORADATAORCLUNDOTBS01.DBF 1275080

E:APPADMINISTRATORORADATAORCLUSERS01.DBF 1275080

從以上的輸出可以看出Checkpoint_Change#非常接近SCN的值,說明Checkpoint_Change#來源於SCN,因爲SCN時刻在變化,無法捕獲到Checkpoint_Change#等於SCN的時刻.

-- The End --



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章