ORA01152: file 1 was not restored from a sufficiently old backup

RMAN> shutdown immediate

database dismounted
Oracle instance shut down

RMAN> startup mount

connected to target database (not started)
Oracle instance started
database mounted

Total System Global Area     285212672 bytes

Fixed Size                     1218968 bytes
Variable Size                 83887720 bytes
Database Buffers             192937984 bytes
Redo Buffers                   7168000 bytes

RMAN> restore database;

Starting restore at 06-JAN-11
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=158 devtype=DISK

datafile 9 not processed because file is offline
skipping datafile 1; already restored to file /oracle/product/10.2.0/oradata/orcl/system01.dbf
skipping datafile 2; already restored to file /oracle/product/10.2.0/oradata/orcl/undotbs01.dbf
skipping datafile 4; already restored to file /oracle/product/10.2.0/oradata/orcl/users01.dbf
skipping datafile 5; already restored to file /oracle/product/10.2.0/oradata/orcl/example01.dbf
skipping datafile 8; already restored to file /oracle/product/10.2.0/oradata/orcl/user01.dbf
skipping datafile 3; already restored to file /oracle/product/10.2.0/oradata/orcl/sysaux01.dbf
skipping datafile 6; already restored to file /oracle/product/10.2.0/oradata/orcl/tzjh01.dbf
skipping datafile 7; already restored to file /oracle/product/10.2.0/oradata/orcl/bid01.dbf
restore not done; all files readonly, offline, or already restored
Finished restore at 06-JAN-11

RMAN> recover database;

Starting recover at 06-JAN-11
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 01/06/2011 15:12:17
RMAN-06094: datafile 9 must be restored

同时我用sqlplus是这状态
[oracle@server bdump]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jan 6 15:12:47 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/oracle/product/10.2.0/oradata/orcl/system01.dbf'

RMAN> restore datafile 9;

Starting restore at 06-JAN-11
using channel ORA_DISK_1

creating datafile fno=9 name=/oracle/product/10.2.0/oradata/orcl/user02.dbf
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 01/06/2011 15:14:59
ORA-01178: file 9 created before last CREATE CONTROLFILE, cannot recreate
ORA-01110: data file 9: '/oracle/product/10.2.0/oradata/orcl/user02.dbf'

解决办法:
控制文件重建
SQL>startup nomount;
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG
  2  MAXLOGFILES 16
  3  MAXLOGMEMBERS 3
  4  MAXDATAFILES 100
  5  MAXINSTANCES 8
  6  MAXLOGHISTORY 292
  7  LOGFILE
  8  GROUP 1 '/oracle/product/10.2.0/oradata/orcl/redo01.log'  SIZE 50M,
  9  GROUP 2 '/oracle/product/10.2.0/oradata/orcl/redo02.log'  SIZE 50M,
10  GROUP 3 '/oracle/product/10.2.0/oradata/orcl/redo03.log'  SIZE 50M
11  DATAFILE
12  '/oracle/product/10.2.0/oradata/orcl/system01.dbf',
13  '/oracle/product/10.2.0/oradata/orcl/undotbs01.dbf',
14  '/oracle/product/10.2.0/oradata/orcl/sysaux01.dbf',
15  '/oracle/product/10.2.0/oradata/orcl/users01.dbf',
16  '/oracle/product/10.2.0/oradata/orcl/example01.dbf',
17  '/oracle/product/10.2.0/oradata/orcl/tzjh01.dbf',
18  '/oracle/product/10.2.0/oradata/orcl/bid01.dbf',
19  '/oracle/product/10.2.0/oradata/orcl/user01.dbf',
20  '/oracle/product/10.2.0/oradata/orcl/user02.dbf',
21  CHARACTER SET ZHS16GBK
22  ;

重建控制文件后
SQL>recover database using backup controlfile;
  pecify log: {<RET>=suggested | filename | AUTO | CANCEL}
  auto
执行完毕后
SQL>shutdown immediate;
SQL>startup;
SQL>alter database open resetlogs;
成功!!
具体也可参照我的帖子:
http://www.itpub.net/thread-1388122-1-1.html
原文地址:https://www.cnblogs.com/datalife/p/1985266.html