1、系统检查点SCN
每当一个检查点完成后,ORACLE就把这个检点对应的SCN记录到控制文件中
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
5969759313181
2、数据文件检查点
每当发生检查点动作时,oracle把每个数据文件SCN保存在控制文件中。
SQL> select name,checkpoint_change# from v$datafile;
NAME CHECKPOINT_CHANGE#
-------------------------------------------------------------------------------- ------------------
/home/oradba/oradata/uatgims/system01.dbf 5969759313181
/home/oradba/oradata/uatgims/undotbs01.dbf 5969759313181
/home/oradba/oradata/uatgims/sysaux01.dbf 5969759313181
/home/oradba/oradata/uatgims/users01.dbf 5969759313181
3、数据文件启动SCN和终止SCN
每个数据文件头会记录启动SCN,而控制文件会巨鹿每个文件的终止SCN
这两个SCN 来确定文件是否需要恢复。
SQL> select last_change# from v$datafile;
LAST_CHANGE#
------------
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
5969759313181
5969759313181
5969759313181
5969759313181
正常运行情况下终止SCN为空。而其他SCN是一样的。
如果干净的关闭所有SCN一致
如果不干净关闭则终止SCN为空,这个时候则代表需要进行recovery。