您的位置:首页 > 数据库 > Oracle

自己的ORACLE库也要用_allow_resetlogs_corruption参数启动了

2008-09-16 14:56 549 查看
原来一直是自己制造一些在线重做日志错误,然后测试了一下_allow_resetlogs_corruption=true参数启动数据库。

这次倒是真的遇到了,我的人个开发库,由于本机空间不够,所以我的数据库数据文件都放在移动硬盘上的,一直都挺好的,一天,可能是USB接口松了,导至数据没有写入成功,在线重做日志文件写出错了,数据库就当了。

具体的状况是,数据库可以到MOUNT状态,但OPEN不了,启动日志alert.log如下:

Tue Sep 16 11:00:11 2008
Errors in file c:/oracle/admin/testdb/udump/testdb_ora_4256.trc:
ORA-00333: ??????? 99965 ?? 8192 ??
ORA-00312: ???? 4 ?? 1: 'H:/ORACLE/ORADATA/TESTDB/LOG4.ORA'
ORA-27091: skgfqio: ???? I/O ??
ORA-27070: skgfdisp: ????/????
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 121) 信号灯超时时间已到

以下是testdb_ora_4256.trc文件的内容

Dump file c:/oracle/admin/testdb/udump/testdb_ora_4256.trc
Tue Sep 16 10:58:32 2008
ORACLE V9.2.0.8.0 - Production vsnsta=0
vsnsql=12 vsnxtr=3
Windows 2000 Version 5.2 Service Pack 2, CPU type 586
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
Windows 2000 Version 5.2 Service Pack 2, CPU type 586
Instance name: testdb

Redo thread mounted by this instance: 1

Oracle process number: 15

Windows thread id: 4256, image: ORACLE.EXE


*** 2008-09-16 10:58:32.984
*** SESSION ID:(12.3) 2008-09-16 10:58:32.968
ORA-00333: ??????? 102013 ?? 6144 ??
ORA-00312: ???? 4 ?? 1: 'H:/ORACLE/ORADATA/TESTDB/LOG4.ORA'
ORA-27070: skgfdisp: ????/????
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 121) 信号灯超时时间已到
*** 2008-09-16 11:00:11.875
ORA-00333: ??????? 99965 ?? 8192 ??
ORA-00312: ???? 4 ?? 1: 'H:/ORACLE/ORADATA/TESTDB/LOG4.ORA'
ORA-27091: skgfqio: ???? I/O ??
ORA-27070: skgfdisp: ????/????
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 121) 信号灯超时时间已到

OPEN的时候就没有响应了,alert.log中就不断的报上面的错。
根据判断,是在线重做日志文件坏了,由于是个人的开发库,所以每个日志组也只给了一个文件.
于是只能用_allow_resetlogs_corruption参数试一下了.

alter system set "_allow_resetlogs_corruption"=true scope=spfile;

修改后,重启数据库,没有出现撤消段的错误,还比较正常的启动了,先凑合着用吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: