三種SCN查詢SQL

1.系統當前SCN:

兩個語句都可以:

select current_scn from v$database;

CURRENT_SCN
-----------
 1859456

備註:『以dba_和v$開頭的通常都是視圖。dba_開頭的裏面的信息通常是靜態的,信息在文件中(但是並不代表裏面的信息不變化)。v$開頭的信息通常是動態的,來自控制文件和內存中的信息』:表明爲什麼在mount下,通常可以通過V$查詢一些信息。

select dbms_flashback.get_system_change_number, 
SCN_TO_TIMESTAMP(dbms_flashback.get_system_change_number) from dual;

GET_SYSTEM_CHANGE_NUMBER        SCN_TO_TIMESTAMP(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER)
---------------------------------------------------------------------------
                 1859442                                       10-JAN-17 08.57.41.000000000 PM



2..數據庫全局-檢查點 SCN,在控制文件中

select dbid,checkpoint_change# from v$database;


DBID CHECKPOINT_CHANGE#
---------- ------------------
1457614420            1854803


3.當前數據文件檢查點SCN。在控制文件中、數據文件頭中。即checkpoint scn,表示該數據文件最近一次執行檢查點操作時的SCN

select name,checkpoint_change# from v$datafile;

NAME CHECKPOINT_CHANGE#
------------------
+DATA/orcl/datafile/system.266.929833573 1854803


+DATA/orcl/datafile/sysaux.267.929833573  1854803


+DATA/orcl/datafile/undotbs1.268.929833573 1854803



+DATA/orcl/datafile/users.269.929833573 1854803


+DATA/orcl/datafile/undotbs2.279.929833933 1854803



4..查詢數據文件頭SCN,數據文件頭scn:不同於上述的SCN數據文件開始scn記錄在每個數據文件中。當發生系統及文件級別的檢查點後,不僅將這時的SCN號記錄在控制文件中,同樣也記錄在數據文件中。
查詢數據文件頭SCN的命令如下

 select name,checkpoint_change# from v$datafile_header;


+DATA/orcl/datafile/system.266.929833573 1854803


+DATA/orcl/datafile/sysaux.267.929833573  1854803


+DATA/orcl/datafile/undotbs1.268.929833573 1854803



+DATA/orcl/datafile/users.269.929833573 1854803


+DATA/orcl/datafile/undotbs2.279.929833933 1854803


5.數據文件結束SCN,在數據文件頭,控制文件中。

LAST_CHANGE#,如果數據庫非正常關閉值爲NULL。正常關閉是關閉時的SCN。
實例恢復就是在打開數據庫時檢查此參數確定是否需要恢復。
數據庫OPEN時LAST_CHANGE#也爲NULL,因爲不確定SCN多少時關閉。

可以看出來, 

字段 last_change#  爲空。

select name,last_change# from v$datafile;
+DATA/orcl/datafile/system.266.929833573

+DATA/orcl/datafile/sysaux.267.929833573

+DATA/orcl/datafile/undotbs1.268.929833573

+DATA/orcl/datafile/users.269.929833573

+DATA/orcl/datafile/undotbs2.279.929833933

6.日誌中所含SCN範圍
select GROUP#,sequence#,STATUS,FIRST_CHANGE#,to_char(FIRST_TIME,'yyyy/mm/dd:hh24:mi:ss') firsttime,NEXT_CHANGE#,to_char(NEXT_TIME,'yyyy/mm/dd:hh24:mi:ss') nexttime from V$log;


下面的數據是在網絡上摘錄的:

    GROUP#  SEQUENCE# STATUS           FIRST_CHANGE# FIRSTTIME           NEXT_CHANGE# NEXTTIME
---------- ---------- ---------------- ------------- ------------------- ------------ -------------------
         1        145 CURRENT                2910938 2013/12/15:10:06:41   2.8147E+14                                               ------當前REDO日誌,所以下一次切換的SCN是無窮大,切換時間爲空。
         2        143 INACTIVE               2865685 2013/12/14:20:36:08      2883589 2013/12/15:02:00:55
         3        144 INACTIVE               2883589 2013/12/15:02:00:55      2910938 2013/12/15:10:06:41

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