恢复中经常会碰到ORA-1113错误,这是由于数据库没有恢复到一个一致性的时刻。
一般情况下,使用备份的控制文件恢复过程中缺少联机日志文件会造成这个问题:
SQL> CONN /@TEST AS SYSDBA
已连接。
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> HOST DEL F:ORACLEORADATATEST*.LOG
SQL> HOST COPY F:ORACLEBACKUPTEST20060502*.CTL F:ORACLEORADATATEST
SQL> HOST COPY F:ORACLEBACKUPTEST20060502*.DBF F:ORACLEORADATATEST
SQL> STARTUP MOUNT
ORACLE 例程已经启动。
Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;
ORA-00279: 更改 48627093 (在 05/03/2006 02:57:45 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00021.001
ORA-00280: 更改 48627093 对于线程 1 是按序列 # 21 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: 更改 48647167 (在 05/03/2006 11:04:50 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00022.001
ORA-00280: 更改 48647167 对于线程 1 是按序列 # 22 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00021.001'
ORA-00279: 更改 48647417 (在 05/03/2006 11:06:45 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00023.001
ORA-00280: 更改 48647417 对于线程 1 是按序列 # 23 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00022.001'
ORA-00279: 更改 48647489 (在 05/03/2006 11:07:26 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00024.001
ORA-00280: 更改 48647489 对于线程 1 是按序列 # 24 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00023.001'
ORA-00279: 更改 48647668 (在 05/03/2006 11:07:53 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00025.001
ORA-00280: 更改 48647668 对于线程 1 是按序列 # 25 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00024.001'
ORA-00308: 无法打开存档日志 'F:ORACLEORADATATESTARCHIVEARC00025.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL> ALTER DATABASE OPEN RESETLOGS;
ALTER DATABASE OPEN RESETLOGS
*
ERROR 位于第 1 行:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'F:ORACLEORADATATESTSYSTEM01.DBF'
这时候可以通过发出UNTIL CANCEL来解决:
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
IXDBA.NET社区论坛
ORA-00279: 更改 48647668 (在 05/03/2006 11:07:53 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00025.001
ORA-00280: 更改 48647668 对于线程 1 是按序列 # 25 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
CANCEL
介质恢复已取消。
SQL> ALTER DATABASE OPEN RESETLOGS;
数据库已更改。