数据库启动时,会比对SCN是否一致,如果不一致则说明要进行恢复。下面例子演示了数据文件启动SCN和终止SCN的变化。
(1)数据库运行过程中,终止SCN为NULL。
SQL> select checkpoint_change#,last_change# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
868697856
868697856
868697856
868697856
868697856
868697856
(2)正常关闭数据库后,启动到MOUNT状态。产看终止SCN会被设置成启动SCN。
SQL> shutdown immediate;
SQL> startup mount;
SQL> select checkpoint_change#,last_change# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
868698245 868698245
868698245 868698245
868698245 868698245
868698245 868698245
868698245 868698245
868698245 868698245
868698245 868698245
868698245 868698245
868698245 868698245
(3)异常关闭数据库时,终止SCN来不及被修改,数据库启动到MOUNT状态,ORACLE就知道这些数据文件需要恢复。
SQL> shutdown abort;
SQL> startup mount;
SQL> select checkpoint_change#,last_change# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
868698246
868698246
868698246
868698246
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26655292/viewspace-745009/
,如需转载,请注明出处,否则将追究法律责任。