数据库断电 引起错误恢复过程。

如下动作会造成ORA-01194错误:
非存档模式下,拷贝走数据库回滚段。归档模式下未试。

不幸的是,由于磁盘损坏,所有的联机日志和归档日志统统丢失或者损坏。
这种恢复方法不到万不得已不用;而且即使用了也不能保证数据库一定能在不一致的情况下打开。如果库庆幸的话,库能够打开,要记得执行全库数据的exp导出。还有,一定要做好现场的保护,因为,这个方法不保证一定成功。


我下面的试验,没有open数据库,失败了。但过程是这样的。看运气了!


 

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'F:SUN2SYSTEM01.DBF'


SQL> alter system set _allow_resetlogs_corruption=TRUE
2 /
alter system set _allow_resetlogs_corruption=TRUE
*
ERROR at line 1:
ORA-00911: invalid character


SQL> alter system set _allow_resetlogs_corruption=TRUE scope=spfile;
alter system set _allow_resetlogs_corruption=TRUE scope=spfile
*
ERROR at line 1:
ORA-00911: invalid character


SQL> shutdown immediate
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> create pfile='E:oracleproduct10.1.0db_1databaseinitSUN.ora' from spfile;

文件已创建。

SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。

《在pfile中添加_allow_resetlogs_corruption=TRUE,然后继续》

SQL> startup pfile=E:oracleproduct10.1.0db_1databaseinitSUN.ora
ORACLE 例程已经启动。

Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database resetlogs;
alter database resetlogs
*
第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01092: ORACLE 例程终止。强制断开连接


SQL> show user
USER 为 "SYS"
SQL> alter database open resetlogs;
ERROR:
ORA-03114: 未连接到 ORALCE


SQL> conn / as sysdba
已连接到空闲例程。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01034: ORACLE not available


SQL> shutdown immediate
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效


SQL> alter database open noresetlogs;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效


SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount pfile=E:oracleproduct10.1.0db_1databaseinitSUN.ora
ORACLE 例程已经启动。

Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效


SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'F:SUN2SYSTEM01.DBF'


SQL> recover datafile 1;
完成介质恢复。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 2 需要介质恢复
ORA-01110: 数据文件 2: 'F:SUN2UNDOTBS01.DBF'


SQL> select * from v$recover_file;

未选定行

SQL> recover datafile 2;
完成介质恢复。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 3 需要介质恢复
ORA-01110: 数据文件 3: 'F:SUN2SYSAUX01.DBF'


SQL> recover datafile 3;
完成介质恢复。
SQL> recover datafile 4;
完成介质恢复。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01092: ORACLE 例程终止。强制断开连接


SQL> conn / as sysdba
已连接到空闲例程。
SQL> select open_mode from v$database;
select open_mode from v$database
*
第 1 行出现错误:
ORA-01034: ORACLE not available


SQL> startup mount pfile=E:oracleproduct10.1.0db_1databaseinitSUN.ora
ORACLE 例程已经启动。

Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'F:SUN2SYSTEM01.DBF'


SQL> recover database;
完成介质恢复。
SQL> alter database opne;
alter database opne
*
第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效


SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01092: ORACLE 例程终止。强制断开连接


SQL> startup pfile=E:oracleproduct10.1.0db_1databaseinitSUN.ora
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup pfile=E:oracleproduct10.1.0db_1databaseinitSUN.ora
ORACLE 例程已经启动。

Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'F:SUN2SYSTEM01.DBF'


SQL> recover database until cancel;
ORA-00279: 更改 517505 (在 01/08/2008 20:21:43 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEFLASH_RECOVERY_AREASUNARCHIVELOG2008_01_08O1_MF_1_3_%

U_.ARC
ORA-00280: 更改 517505 (用于线程 1) 在序列 #3 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

ORA-00308: 无法打开归档日志 'F:ORACLEFLASH_RECOVERY_AREASUNARCHIVELOG2008_01_08

O1_MF_1_3_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'F:SUN2SYSTEM01.DBF'


SQL>

 

posted @ 2013-08-07 17:19  sdgxboy  阅读(1167)  评论(0编辑  收藏  举报