ora-01115错误

测试服务器配制   os : window2003  oracle 9I   memery : 8G    cpu intel 8 core

                                                                 archived_mode     :  noarchived

故障原因 : 数据文件之前是10G  同事resize 到 20G   


在客户端执行  alter database datafile 'd:\....dbf'  resize 20480M;


他再执行查询表空间的时候  发现报 ora-01115  从文件20 读数据块出现IO错误。。。


alert 日志 报错如下 


*** 2011-09-05 14:14:23.000
*** SESSION ID:(2.1) 2011-09-05 14:14:23.000
KCF: write/open error block=0x37a3a online=1
     file=20 E:\ORACLE9I2\ORACLE9I2\ORADATA\GOLDEN\TS_DW.ORA
     error=27069 txt: 'OSD-04026: 传递的参数无效。 (OS 227898)'
error 1242 detected in background process
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode
ORA-01114: IO error writing block to file 20 (block # 227898)
ORA-01110: data file 20: 'E:\ORACLE9I2\ORACLE9I2\ORADATA\GOLDEN\TS_DW.ORA'
ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file
OSD-04026: 传递的参数无效。 (OS 227898)


*** 2011-09-05 14:14:24.000
*** SESSION ID:(1.1) 2011-09-05 14:14:24.000
error 1242 detected in background process
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode




我开始怀疑出现坏块,但找到了一篇文章  描述如下


http://blog.itpub.net/post/385/248099

Thu Dec 28 10:23:12 2006
Errors in file /oracle/admin/*****/bdump/*****_smon_11633.trc:
ORA-01115: IO error reading block from file 2261 (block # 16313)
ORA-01110: data file 2261: '/dev/*****/rlv_*****'
ORA-65535: Message 65535 not found; product=RDBMS; facility=ORA
SMON: terminating instance due to error 1115
Instance terminated by SMON, pid = 11633
Thu Dec 28 10:28:22 2006


对这个行为有些疑惑,因为只是一个数据块无法读取,而且是非SYSTEM和UNDO表空间,为何数据库要把自己关掉呢?
看到了oracle给出的解释:

If the database is in noarchivelog mode, and Oracle cannot update a datafile, the instance will crash. This to protect the database from overw
riting the current online redolog which is required for crash recovery. This regardless of the datafile being in the system tablespace.
A database in archivelogmode, can survive with only the system tablespace, but will be of little use without undo and possibly temp.
Transactions starting that requires access to unavailable files will be rolled back and not complete.

In this case, the block corruption was discovered by SMON during transaction recovery. And since it cannot
access the file, it will terminate the instance, as explained above.

意思大概是:在非归档模式,如果一个数据块无法读取,为了避免由此产生的大量的redo log,即使是非SYSTEM表空间,oracle也会把数据库关闭。


看这完这篇文章  呵呵  库就crash掉了

重新启动             真的像上文所说的    一切完好,只是在做数据库resize数据文件发生回退 。  重新resize  一切完好


你可能感兴趣的:(oracle,数据库,File,database,System,Crash)