问题描述

    我们在用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 sel