什么时候会产生实例恢复呢?当你数据库服务器异常断电,重启数据库就会发生实例恢复。实例恢复是由数据库自动完成的,无须DBA的干涉。当然这里有个前提条件:数据文件、在线日志文件、控制文件不得有损坏。
我们用实验来分析一下实例恢复的整个过程吧!
1、在关闭数据库前,我们先看一下几个检查点的SCN
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
1455180
--控制文件中保存的数据库检查点SCN号实际上在所有数据文件头部中最小的检查点SCN
SQL> select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 1455180
2 1455180
3 1455180
4 1455180
5 1455180
6 1455180
--控制文件中保存的数据文件检查点SCN:当一个检查点动作完成之后,Oracle就把每个数据文件的scn单独存放在控制文件中
SQL> select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 1455180
2 1455180
3 1455180
4 1455180
5 1455180
6 1455180
--每个数据文件的文件头中的检查点SCN
这三个检查点的SCN一致,接下来模拟异常断电,重启机器
2、此命令可以模拟异常断电
SQL> shutdown abort;
ORACLE instance shut down.
3、监控告警日志
[oracle@guoyj trace]$ tail -f alert_bxocp.log
Starting background process VKRM
Tue Dec 11 22:54:41 2012
VKRM started with pid=24, OS id=12500
Tue Dec 11 22:58:11 2012
Shutting down instance (abort)
License high water mark = 3
USER (ospid: 12479): terminating the instance
Instance terminated by USER, pid = 12479
Tue Dec 11 22:58:12 2012
Instance shutdown complete