SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
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) 数据错误(循环冗余检查)。
SQL> recover database;
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) 数据错误(循环冗余检查)。这是我用sqlplus "/as sysdba"登录想启动数据库出现这种错误..各位大哥大姐们帮忙小弟解决下..小弟非常感谢

解决方案 »

  1.   

    看看这个:http://www.eygle.com/archives/2006/10/system_tbs_io_corruption.html
      

  2.   

    这里提示是undo表空间的数据文件又问题。可以试试重新做undo表空间试试
    关闭服务器
    先到mount状态,
    然后重做undo表空间具体参照一下http://www.inthirties.com/?p=681先试试这样的方式。
      

  3.   

    就是服务器电源坏了.换了电源启动后就是登录就ORA-01033,没备份,应该是归档模式,是否干净停止了实例? 
    有点不清楚?
      

  4.   

    服务器掉电就是个shutdown abort
    肯定不时clean的按4楼说的重做一下undo表空间吧,先修改数据库现在的redo为offline,再创建一个undo表空间并设置为默认undo空间,再把原来的undo表空间干掉.
    打开数据库以后,建议立即将数据导出,删除并重建数据库,最后将数据导入.
      

  5.   

    为什么要重做undo?如果不能open,你的undo是不能重建的.最好是强制打开db先,加hidden p尝试打开看看.
    加入隐含参数:_allow_resetlogs_corruption=true;
    startup mountrecover database until cancel;
    alter database open resetlogs;