且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ORACLE中的4种SCN

更新时间:2022-06-23 05:39:40

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。