一夜之间的硬盘驱动器故障会产生各种副作用,包括留下一个需要恢复的数据文件:
SQL> select count(*) from v$datafile where status='RECOVER';
COUNT(*)
----------
1
现在一切恢复正常,但仍有一个谜团:在恢复之前,当批处理作业试图访问数据文件中的段时,客户端应用程序将 ORA-00376 记录到日志记录表中。然而这个错误并没有出现在alert log中,怎么会这样呢?
在出现ORA-00376错误时,alert日志中确实出现了以下内容:
Errors in file /app/oracle/admin/live33/bdump/live33_j002_938224.trc:
ORA-12012: error on auto execute of job 24760001
ORA-20001: Error during batch run
ORA-06512: at "*******.***_*****", line 266
ORA-06512: at "*******.***_***_***_*****", line 355
ORA-06512: at line 1
在最初的问题上:
KCF: write/open error block=0x2fb23 online=1
file=177 /data/ora9i/live/db3b/nsbme.dbf
error=27072 txt: 'IBM AIX RISC System/6000 Error: 5: I/O error
Additional information: 195363'
Automatic datafile offline due to write error on
file 177: /data/ora9i/live/db3b/nsbme.dbf
Oracle为该错误消息提供了以下信息:
他们不将此错误消息包含在警报日志中的逻辑与以下事实有关:警报日志是为了显示构成实例的后台进程收到的消息。用户会话错误消息可能表明实例存在较大问题,但所有用户会话错误消息都不是实例问题的指示器。(例如 ORA-00001)