1、验证规则
启动过程检测的步骤:
1)比较控制文件和数据文件头中checkpoint cnt的数量是否一致,如果一致,继续下一步。
2)比较控制文件中的stop scn和数据文件头开始scn是否一致,如果一致,说明数据文件吧需要恢复。
2、验证不需要恢复的情况
Sql> startup mount
Sql> alter session set events 'immediate trace name controlf level 8'; #Dump controlfile
Sql> alter session set events 'immediate trace name file_hdrs level 10'; #dump datafile header
Dump的controlfile信息:
DATA FILE #1:
(name #10) +DG1/orcl/datafile/system.257.726688597
Checkpoint cnt:76 scn: 0x0000.00083775 08/12/2010 10:28:43
Stop scn: 0x0000.00083775 08/12/2010 10:28:43
Dump的file header信息:
包含了控制文件记录的信息:
Checkpoint cnt:76 scn: 0x0000.00083775 08/12/2010 10:28:43
Stop scn: 0x0000.00083775 08/12/2010 10:28:43
Creation Checkpointed at scn: 0x0000.00000009 06/30/2005 19:10:11
文件头记录的信息
status:0x2000 root dba:0x00400179 chkpt cnt: 76 ctl cnt:75
begin-hot-backup file size: 0
Checkpointed at scn: 0x0000.00083775 08/12/2010 10:28:43
可见控制文件和数据文件头部ckpt cnt是一致的;
控制文件记录的stop scn等于文件头记录的checkpoint at scn。
所以该文件在打开前不需要恢复。
3、验证需要恢复的情况
备份数据文件:
RMAN> backup as copy format '$ORACLE_BASE/ts1.dbf.bak' datafile '+DG1/orcl/datafile/ts1.dbf';
对ts1表空间上的数据文件内容作修改:
create table t1 tablespace ts1 as select * from dba_users;
还原数据文件:
Sqplus> startup mount;
Rman> restore datafile 6;
Sql> alter session set events 'immediate trace name controlf level 8'; #Dump controlfile
Sql> alter session set events 'immediate trace name file_hdrs level 10'; #dump datafile header
Dump的controlfile信息:
DATA FILE #6:
(name #2) +DG1/orcl/datafile/ts1.dbf
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:25 scn: 0x0000.00083c47 08/12/2010 10:54:34
Stop scn: 0x0000.00083c47 08/12/2010 10:54:34
Dump的file header信息:
status:0x0 root dba:0x00000000 chkpt cnt: 24 ctl cnt:23
begin-hot-backup file size: 0
Checkpointed at scn: 0x0000.00083b24 08/12/2010 10:52:24
可见控制文件ckpt scn比数据文件头部ckpt cnt多1;
控制文件记录的stop scn大于文件头记录的checkpoint at scn。
说明该文件是从备份还原的,需要恢复。
4、恢复后的验证
Rman> recover database;
Sql> alter session set events 'immediate trace name controlf level 8'; #Dump controlfile
Sql> alter session set events 'immediate trace name file_hdrs level 10'; #dump datafile header
Dump的controlfile信息:
DATA FILE #6:
(name #2) +DG1/orcl/datafile/ts1.dbf
Checkpoint cnt:26 scn: 0x0000.00083c47 08/12/2010 10:54:34
Stop scn: 0x0000.00083c46 08/12/2010 10:54:34
Creation Checkpointed at scn: 0x0000.0007a642 08/10/2010 20:19:44
Dump的file header信息:
prev reset logs count:0x2184ef74 scn: 0x0000.00000001 prev reset logs terminal rcv data:0x0 scn: 0x0000.00000000
recovered at 08/12/2010 11:14:36
status:0x0 root dba:0x00000000 chkpt cnt: 26 ctl cnt:25
begin-hot-backup file size: 0
Checkpointed at scn: 0x0000.00083c46 08/12/2010 10:54:34
thread:1 rba:(0x9.a3d3.10)
可见恢复后,控制文件ckpt scn和数据文件头部ckpt cnt相等;
控制文件记录的stop scn也等于文件头记录的checkpoint at scn。
文件可正常打开。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/56630/viewspace-1036683/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/56630/viewspace-1036683/