ora-01115错误

当尝试将Oracle 9i数据库的数据文件从10G扩大到20G时,出现了ora-01115错误,导致IO错误。错误源于对文件20的写入操作,OS返回了无效参数的错误。在NOARCHIVELOG模式下,数据库因保护在线重做日志而崩溃。文章引用了Oracle的解释,指出在非归档日志模式下,数据库无法更新数据文件时会崩溃以防止覆盖恢复所需的日志。解决方法是重新启动数据库,回退resize操作,然后再次尝试,问题得到解决。

测试服务器配制   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  一切完好


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值