1.查询系统当前SCN两条命令
SQL>
select
current_scn
from
v$
database
;
SQL>
select
dbms_flashback.get_system_change_number
from
dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1781893
2.数据库全局-检查点 SCN,在控制文件中。
SYS@bys1>
select
dbid,checkpoint_change#
from
v$
database
;
DBID CHECKPOINT_CHANGE#
---------- ------------------
3957527513 1753478
3.当前数据文件SCN。在控制文件中。即
checkpoint
scn,表示该数据文件最近一次执行检查点操作时的SCN
SQL>
select
name
,checkpoint_change#
from
v$datafile;
NAME
CHECKPOINT_CHANGE#
-------------------------------------------------- ------------------
/u01/oradata/bys1/system01.dbf 1753478
/u01/oradata/bys1/sysaux01.dbf 1753478
SQL>
select
file#,
name
,checkpoint_change#,to_char(checkpoint_time,
'yyyy-mm-dd hh24:mi:ss'
) cptime
from
v$datafile;
FILE#
NAME
CHECKPOINT_CHANGE# CPTIME
---------- -------------------------------------------------- ------------------ -------------------
1 /u01/oradata/bys1/system01.dbf 1753478 2013-09-11 23:00:52
2 /u01/oradata/bys1/sysaux01.dbf 1753478 2013-09-11 23:00:52
4.查询数据文件头SCN,在数据文件头
SQL>
select
name
,checkpoint_change#
from
v$datafile_header;
NAME
CHECKPOINT_CHANGE#
---------------------------------------- ------------------
/u01/app/oracle/oradata/bys001/system01.dbf 1198546
5.数据文件结束SCN,在控制文件中。
LAST_CHANGE#,如果数据库非正常关闭值为
NULL
。正常关闭是关闭时的SCN。
实例恢复就是在打开数据库时检查此参数确定是否需要恢复。
数据库
OPEN
时LAST_CHANGE#也为
NULL
,因为不确定SCN多少时关闭。
SQL>
select
name
,last_change#
from
v$datafile;
NAME
LAST_CHANGE#
---------------------------------------- ------------
/u01/app/oracle/oradata/bys001/system01.dbf
6.日志中所含SCN范围
SQL>
select
GROUP
#,
sequence
#,STATUS,FIRST_CHANGE#,to_char(FIRST_TIME,
'yyyy/mm/dd:hh24:mi:ss'
)
time
from
V$log;
GROUP
#
SEQUENCE
# STATUS FIRST_CHANGE#
TIME
---------- ---------- ---------------- ------------- -------------------
1 49 INACTIVE 1713778 2013/09/11:10:10:08
2 50 INACTIVE 1744790 2013/09/11:21:34:23
3 51
CURRENT
1753478 2013/09/11:23:00:52
|