ORA-01152: file 1 was not restored from a sufficiently old backup
问题描述
我们在用rman恢复数据库时当执行到将数据库open阶段遇到ORA-01152错误。
问题分析
由于controlfile里记录的SCN与datafile里的不一致导致。比如通过restore出来的controlfile的SCN比datafile记录的要小。解决方法有两条:
A) 以old controlfile的SCN为准,将datafile恢复到与其一致,这样就会导致数据的不一致。
B) 以datafile的SCN为准,将controlfile恢复到与其一致,此时就会报ORA-01152的错误,然后我们通过recover database,进而利用归档日志来完成controlfile和datafile的SCN一致,归档找不到在去利用redolog来恢复。
C) 通过更改内置参数跳过一致性的检查启动数据库。
问题重现与解决
a) 备份控制文件,记录DBID
连接RMAN时记录DBID [oracle@dev206 ~]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 5 13:53:26 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1324770912)
RMAN> backup current controlfile;
Starting backup at 05-MAR-13 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=534 devtype=DISK channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset including current control file in backupset channel ORA_DISK_1: starting piece 1 at 05-MAR-13 channel ORA_DISK_1: finished piece 1 at 05-MAR-13 piece handle=/oracle/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_03_05/o1_mf_ncnnf_TAG20130305T142357_8mc3vxo7_.bkp tag=TAG20130305T142357 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 05-MAR-13 |
将控制文件备份到
/oracle/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_03_05/o1_mf_ncnnf_TAG20130305T142357_8mc3vxo7_.bkp路径下。
b) 模拟插入几条数据
原表没有记录: SQL>select * from test; no rows selected |