Oracle
是什麼阻止了警報日誌中出現 ORA-00376 錯誤?
一夜之間硬碟驅動器故障會產生各種副作用,包括留下一個需要恢復的數據文件:
SQL> select count(*) from v$datafile where status='RECOVER'; COUNT(*) ---------- 1
現在一切都恢復正常,但仍有一個謎團:在恢復之前,當批處理作業嘗試訪問數據文件中的段時,客戶端應用程序將 ORA-00376 記錄到日誌表中。然而這個錯誤並沒有出現在警報日誌中,這怎麼會發生呢?
在 ORA-00376 錯誤發生時,警報日誌中確實出現了以下內容:
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-00376 文件字元串此時無法讀取
**原因:**試圖從不可讀的文件中讀取。該文件很可能處於離線狀態。
**行動:**檢查文件的狀態。把它放到網上。
他們不將此錯誤消息包含在警報日誌中的邏輯與警報日誌將顯示組成實例的後台程序收到的消息這一事實有關。使用者會話錯誤消息可能表明實例存在較大問題,但所有使用者會話錯誤消息都不是實例問題的指標。(例如 ORA-00001)