我的电脑在一次意外断电后,链接ORACLE就报错,错误代码的ora-01033,在网上查了一些高手的解决方法,
 在经过  shutdown
          startup 后,发现错误是:ora-01589 
  然后进行日志归档,结果不能成功,下面把代码贴出来,希望各位大侠帮帮忙,解决一下啊,先谢过了!!!!
SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 7月 30 16:59:07 2009Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - ProductionSQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。Total System Global Area  957424096 bytes
Fixed Size                   455136 bytes
Variable Size             377487360 bytes
Database Buffers          578813952 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> alter database open
  2  ;
alter database open
*
ERROR 位于第 1 行:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\ORAOA\SYSTEM01.DBF'
SQL> recover database using backup controlfile;
ORA-00279: 更改 262757107 (在 07/24/2009 05:52:27 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORA92\RDBMS\ARC30228.001
ORA-00280: 更改 262757107 对于线程 1 是按序列 # 30228 进行的指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\oradata\oraoa\REDO02.log
ORA-00283: 恢复会话因错误而取消
ORA-01115: 从文件 2 读取块时出现 IO 错误 (块 # 198798)
ORA-01110: 数据文件 2: 'D:\ORACLE\ORADATA\ORAOA\UNDOTBS01.DBF'
ORA-27070: skgfdisp: 异步读取/写入失败
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 23) 数据错误(循环冗余检查)。
ORA-01112: 未启动介质恢复
SQL>

解决方案 »

  1.   

    估计是数据文件损坏了,或者更严重一点,磁盘坏了.
    这时候就看看你的备份策略了,如果数据库在归档模式下,而且有全备份(最好是用RMAN做的),那还是能够恢复了,否则只能重建数据库了。楼主可以mount数据库后先看看数据文件的情况
    SELECT file#, status, error, name FROM v$datafile_header;另外alert log file也可能看到一些线索。
      

  2.   

    同意,楼主还是RMAN恢复下吧...