由于突然断电,oracle 数据库无法启动 提示ORA-01092:oracle实例终止。强制断开连接 然后查看alter日志如

Tue Jun 26 11:15:31 2012
ALTER DATABASE OPEN
Tue Jun 26 11:15:31 2012
Beginning crash recovery of 1 threads
parallel recovery started with 15 processes
Tue Jun 26 11:15:32 2012
Started redo scan
Tue Jun 26 11:15:32 2012
Completed redo scan
3 redo blocks read, 1 data blocks need recovery
Tue Jun 26 11:15:32 2012
Started redo application at
Thread 1: logseq 19, block 2, scn 12883998658130
Tue Jun 26 11:15:32 2012
Recovery of Online Redo Log: Thread 1 Group 5 Seq 19 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO51.LOG
Mem# 1 errs 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO52.LOG
Tue Jun 26 11:15:32 2012
Completed redo application
Tue Jun 26 11:15:32 2012
Completed crash recovery at
Thread 1: logseq 19, block 5, scn 12883998678134
1 data blocks read, 1 data blocks written, 3 redo blocks read
Tue Jun 26 11:15:32 2012
Thread 1 advanced to log sequence 20
Thread 1 opened at log sequence 20
Current log# 6 seq# 20 mem# 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO61.LOG
Current log# 6 seq# 20 mem# 1: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO62.LOG
Successful open of redo thread 1
Tue Jun 26 11:15:32 2012
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Tue Jun 26 11:15:32 2012
SMON: enabling cache recovery
Tue Jun 26 11:15:32 2012
Errors in file d:\oracle\product\10.2.0\admin\orcl\udump\orcl_ora_408.trc:
ORA-00600: 内部错误代码, 参数: [4194], [9], [8], [], [], [], [], []

Tue Jun 26 11:15:33 2012
Doing block recovery for file 1 block 200
Block recovery from logseq 20, block 3 to scn 12883998678142
Tue Jun 26 11:15:33 2012
Recovery of Online Redo Log: Thread 1 Group 6 Seq 20 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO61.LOG
Mem# 1 errs 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO62.LOG
Block recovery stopped at EOT rba 20.5.16
Block recovery completed at rba 20.5.16, scn 2999.3391757436
Doing block recovery for file 1 block 5
Block recovery from logseq 20, block 3 to scn 12883998678139
Tue Jun 26 11:15:33 2012
Recovery of Online Redo Log: Thread 1 Group 6 Seq 20 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO61.LOG
Mem# 1 errs 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO62.LOG
Block recovery completed at rba 20.5.16, scn 2999.3391757436
Tue Jun 26 11:15:33 2012
Errors in file d:\oracle\product\10.2.0\admin\orcl\udump\orcl_ora_408.trc:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-00607: 当更改数据块时出现内部错误
ORA-00600: 内部错误代码, 参数: [4194], [9], [8], [], [], [], [], []

Error 604 happened during db open, shutting down database
USER: terminating instance due to error 604
Tue Jun 26 11:15:34 2012
Errors in file d:\oracle\product\10.2.0\admin\orcl\bdump\orcl_pmon_2296.trc:
ORA-00604: ?? SQL ?? ????

SQL>conn / as sysdba;
SQL>shutdown immediate;
SQL>startup mount;
SQL>show parameter undo;(这里可以查看undo的表空间管理方式应该是auto)
SQL>alter system set undo_management=manualscope=spfile;
SQL>shutdown immediate;
SQL>startup;
我们的思路是新建一个undo表空间,替换原来损坏的表空间.删除掉原来的坏的undo表空间.如果不放心,还可以建个和以前损坏的表空间同名的undo表空间再替换回来.这里设新建undo表空间名为undo2,原来环掉的表空间名为undotbs1.
SQL>create undo tablespace undo2 datafile'd:\oracle\oradata\orcl\undo2.dbf' size 200M;
SQL>alter system set undo_tablespace=undo2scope=spfile;
SQL>drop tablespace undotbs1 including contents anddatafiles;
SQL>create undo tablespace undotbs1datafile 'd:\oracle\oradata\orcl\undotbs01.dbf' size 200M;
SQL>alter system set undo_tablespace=undotbs1scope=spfile;
SQL>drop tablespace undo2 including contents anddatafiles;
到这里原来的undo表空间就恢复了.记得把管理方式设置为auto.很简单不再罗嗦.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-03-23
PRM-DUL 可以直接从Oracle .DBF数据文件中抽取出表的数据。

Oracle DBA神器:PRM灾难恢复工具,Schema级别数据恢复。PRM For Oracle Database – schema级别oracle数据库数据恢复特性 ,PRM即ParnassusData Recovery Manager是企业级别Oracle数据库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。
第2个回答  2012-06-26
可能是控制文件损毁
第3个回答  2012-07-02
Examine the alert log for more details. When the instance has been restarted, retry action.
第4个回答  2012-06-26
请把trace文件的内容贴出来