当前位置:数据库 > Oracle >>

ORACLE中的各种SCN查询

ORACLE中的各种SCN查询
 
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

 


Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,