近期数据库遇到了ORA-01115错误,导致数据库自己立刻把库关闭了。
alert log 如下:
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也会把数据库关闭。
看来小小的一个数据块无法读取也会导致这样大的问题。特此留念。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19015/viewspace-888520/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/19015/viewspace-888520/