一、四个SCN概念。
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
二、
system commit number Vs system change number
system commit number :仅仅表示 提交时候产生的 SCN ,是 SCN 的一部分 ,不等于 SCN
system change number : 数据库发生任何变化所产生的 SCN ,指所有的 SCN
The SCN will -- but not the checkpoint_change#. Thats the last SCN checkpointed:
产生 SCN 的原因很多!
DML/commit/rollback/job/数据库递归调用/关闭打开数据库/日志缓冲区若是并行分配…… 很多情况,任何数据库的改变都会导致 SCN 的增加!
从这里可以查:
SQL>select GROUP#,FIRST_CHANGE# from v$log;--日志文件同步号
SQL>select file#,checkpoint_change# from v$datafile;--数据文件同步号
SQL>select checkpoint_change# from v$database;--控制文件同步号 system change number
SQL>select * from v$logfile;
SQL>alter system checkpoint;设置
SQL>SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;查询
SQL>alter system switch logfile;切换日志
阅读(344) | 评论(0) | 转发(0) |