错误,继续往下看:
SQL> select name from v$datafile;
NAME
------------------------------------------------------------------------------
/free/oracle/oradata/exitgogo/system01.dbf
/free/oracle/oradata/exitgogo/undotbs01.dbf
/free/oracle/oradata/exitgogo/users01.dbf
/free/oracle/oradata/exitgogo/tools01.dbf
/free/oracle/oradata/exitgogo/indx01.dbf
/free/oracle/product/9.2.0.8/dbs/UNNAMED00006
6 rows selected.
可以看到,oracle中莫名的多出了一个文件UNNAMED00006,
IXDBA.NET技术社区
出现这个文件的原因是由于redo file中记录了pub的信息,在通过recover恢复后,系统也认到了有pub这个表空间的存在,但是由于控制文件中没有记录这个文件的信息,所以oracle抛了一个错误,说发现一个没有命名的文件,然后oracle系统本身给这个文件做了一个命名。
可以通过下面的方式把pub表空间数据文件移动到合适的位置。
SQL>
alter database create datafile 6 as '/free/oracle/oradata/exitgogo/pub.dbf';
Database altered.
SQL> col name format a40
SQL> select file#,name from v$datafile;
FILE# NAME
---------- ----------------------------------------
1 /free/oracle/oradata/exitgogo/system01.d bf
2 /free/oracle/oradata/exitgogo/undotbs01.dbf
3 /free/oracle/oradata/exitgogo/users01.dbf
4 /free/oracle/oradata/exitgogo/tools01.dbf
FILE# NAME
---------- ----------------------------------------
5 /free/oracle/oradata/exitgogo/indx01.dbf
6 /free/oracle/oradata/exitgogo/pub.dbf
6 rows selected.
继续恢复:
SQL> recover database using backup controlfile;
ORA-00279: change 73805 generated at 11/23/2006 17:37:18 needed for thread 1
ORA-00289: suggestion :
/free/oracle/product/9.2.0.8/dbs/archexitgogo/T0001S0000000008.ARC
ORA-00280: change 73805 for thread 1 is in sequence #8
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 74363 generated at 11/23/2006 17:38:51 needed for thread 1
ORA-00289: suggestion :
/free/oracle/product/9.2.0.8/dbs/archexitgogo/T0001S0000000009.ARC
ORA-00280: change 74363 for thread 1 is in sequence #9
ORA-00278: log file
'/free/oracle/product/9.2.0.8/dbs/archexitgogo/T0001S0000000008.ARC' no longer
needed for this recovery
ORA-00308: cannot open archived log
'/free/oracle/product/9.2.0.8/dbs/archexitgogo/T0001S0000000009.ARC'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
由于我的归档没有T0001S0000000009了,所以可能需要redo file了
SQL> recover database using backup controlfile;
ORA-00279: change 74363 generated at 11/23/2006 17:38:51 needed for thread 1
ORA-00289: suggestion :
/free/oracle/product/9.2.0.8/dbs/archexitgogo/T0001S0000000009.ARC
ORA-00280: change 74363 for thread 1 is in sequence #9
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/free/oracle/oradata/exitgogo/redo01.log
ORA-00310: archived log contains sequence 7; sequence 9 required
ORA-00334: archived log: '/free/oracle/oradata/exitgogo/redo01.log'
SQL> recover database using backup controlfile;
ORA-00279: change 74363 generated at 11/23/2006 17:38:51 needed for thread 1
ORA-00289: suggestion :
/free/oracle/product/9.2.0.8/dbs/archexitgogo/T0001S0000000009.ARC
ORA-00280: change 74363 for thread 1 is in sequence #9
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/free/oracle/oradata/exitgogo/redo02.log
ORA-00310: archived log contains sequence 8; sequence 9 required
ORA-00334: archived log: '/free/oracle/oradata/exitgogo/redo02.log'
SQL> recover database using backup controlfile;
ORA-00279: change 74363 generated at 11/23/2006 17:38:51 needed for thread 1
ORA-00289: suggestion :
/free/oracle/product/9.2.0.8/dbs/archexitgogo/T0001S0000000009.ARC
ORA-00280: change 74363 for thread 1 is in sequence #9
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/free/oracle/oradata/exitgogo/redo03.log
Log applied.
Media recovery complete.
可以看到,新建的pub表空间的数据信息在redo03.log中存在,这是因为我的测试数据量很小的原因。如果从rman全备份后到系统宕机这段时间数据量很大的话,可能有很多的归档信息需要恢复,同时redo file也是不可少的。
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active
SQL> quit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
[oracle@www exitgogo]$ sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.8.0 - Production on 星期四 11月 23 18:02:00 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
SQL> alter database open resetlogs;
Database altered.
SQL> conn pub/pub
Connected.
SQL> select count(*) from gaojf1;
COUNT(*)
----------
753152
SQL>
可以看到,数据完全恢复,
这样恢复完成后,马上又做了一个全库的rman备份。