一個網友的資料庫部署在windows環境,可能是由於儲存問題或者windows本身檔案系統的問題,出現IO問題之後,最後資料庫重啟之後,竟然無法啟動了,報錯無法讀取其中的幾個檔案,alert log如下:
Nov 14 12:33:12 2014
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m001_1704.trc (incident=60577):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INC_METER_INFO.ams], [16], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 17) 系統無法將檔案移到不同的磁碟機。
......
......
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_4676.trc (incident=92621):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCCKEY.ams], [21], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 22) 裝置不識別此命令。
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_4676.trc (incident=92622):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCCKEY.ams], [22], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 23) 資料錯誤(迴圈冗餘檢查)。
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_4676.trc (incident=92623):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCCKEY.ams], [25], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 26) 無法訪問指定的磁碟或磁碟片。
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_4676.trc (incident=92624):
..........
ORA-00600: internal error code, arguments: [17182], [0x00DCD3560], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [17147], [0x00DCD3560], [], [], [], [], [], [], [], [], [], []
Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92644\orcl_m000_3176_i92644.trc.
........
Starting up:
Oracle Database 11g Release 11.2.0.1.0 - 64bit Production.
Using parameter settings in server-side spfile D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA
........
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92872):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92872\orcl_m000_6008_i92872.trc
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92873):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92873\orcl_m000_6008_i92873.trc
Successful mount of redo thread 1, with mount id 1391358302
Trace dumping is performing id=[cdmp_20141114143618]
Database mounted in Exclusive Mode
Lost write protection disabled
Trace dumping is performing id=[cdmp_20141114143619]
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92874):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
ORA-48101: error encountered when attempting to read a file [block] [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams] [0]
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92874\orcl_m000_6008_i92874.trc
Completed: ALTER DATABASE MOUNT
Fri Nov 14 14:36:20 2014
ALTER DATABASE OPEN
Read of datafile 'D:\ORACLE\ORADATA\ORCL\ZL9BASEITEM.DBF' (fno 6) header failed with ORA-01200
Rereading datafile 6 header failed with ORA-01200
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_ora_2876.trc:
ORA-01122: 資料庫檔案 6 驗證失敗
ORA-01110: 資料檔案 6: 'D:\ORACLE\ORADATA\ORCL\ZL9BASEITEM.DBF'
ORA-01200: 10240 的實際檔案大小小於 44800 塊的正確大小
ORA-1122 signalled during: ALTER DATABASE OPEN...
Trace dumping is performing id=[cdmp_20141114143621]
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92875):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
ORA-48101: error encountered when attempting to read a file [block] [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams] [0]
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92875\orcl_m000_6008_i92875.trc
Fri Nov 14 14:36:21 2014
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m001_5816.trc (incident=92880):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\HM_RUN.ams], [26], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 27) 磁碟機找不到請求的扇區。
Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92880\orcl_m001_5816_i92880.trc
Trace dumping is performing id=[cdmp_20141114143622]
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92876):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
ORA-48101: error encountered when attempting to read a file [block] [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams] [0]
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
Fri Nov 14 14:37:18 2014
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_5340.trc (incident=92877):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_5340.trc (incident=92878):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCCKEY.ams], [25], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 26) 無法訪問指定的磁碟或磁碟片。
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_5340.trc (incident=92879):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INC_METER_INFO.ams], [16], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 17) 系統無法將檔案移到不同的磁碟機。
.......
ORA-00600: internal error code, arguments: [17114], [0x010F35330], [], [], [], [], [], [], [], [], [], []
ORA-48312: Sweep incident 92687 staging file failed
ORA-00600: internal error code, arguments: [17182], [0x010F35330], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [17147], [0x010F35330], [], [], [], [], [], [], [], [], [], []
Fri Nov 14 14:38:18 2014
..........
..........
Fri Nov 14 14:53:15 2014
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_3144.trc (incident=108895):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_108895\orcl_m000_3144_i108895.trc
Successful mount of redo thread 1, with mount id 1391370839
Database mounted in Exclusive Mode
Lost write protection disabled
Completed: alter database mount exclusive
alter database open
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_dbw0_2808.trc:
ORA-01157: cannot identify/lock data file 8 - see DBWR trace file
ORA-01110: data file 8: 'D:\ORACLE\ORADATA\ORCL\ZL9EXPENSE.DBF'
ORA-27047: unable to read the header block of file
OSD-04006: ReadFile() 失敗, 無法讀取檔案
O/S-Error: (OS 38) 已到檔案結尾。
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_dbw0_2808.trc:
ORA-01157: cannot identify/lock data file 13 - see DBWR trace file
ORA-01110: data file 13: 'D:\ORACLE\ORADATA\ORCL\ZL9EPRDAT.DBF'
ORA-27047: unable to read the header block of file
OSD-04006: ReadFile() 失敗, 無法讀取檔案
O/S-Error: (OS 38) 已到檔案結尾。
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_dbw0_2808.trc:
ORA-01157: cannot identify/lock data file 15 - see DBWR trace file
ORA-01110: data file 15: 'D:\ORACLE\ORADATA\ORCL\ZL9INDEXHIS.DBF'
ORA-27047: unable to read the header block of file
OSD-04006: ReadFile() 失敗, 無法讀取檔案
O/S-Error: (OS 38) 已到檔案結尾。
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_dbw0_2808.trc:
ORA-01157: cannot identify/lock data file 16 - see DBWR trace file
ORA-01110: data file 16: 'D:\ORACLE\ORADATA\ORCL\ZL9INDEXCIS.DBF'
ORA-27047: unable to read the header block of file
OSD-04006: ReadFile() 失敗, 無法讀取檔案
O/S-Error: (OS 38) 已到檔案結尾。
Read of datafile 'D:\ORACLE\ORADATA\ORCL\ZL9BASEITEM.DBF' (fno 6) header failed with ORA-01200
Rereading datafile 6 header failed with ORA-01200
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_ora_3380.trc:
ORA-01122: ????? 6 ????
ORA-01110: ???? 6: 'D:\ORACLE\ORADATA\ORCL\ZL9BASEITEM.DBF'
ORA-01200: 10240 ????????? 44800 ??????
ORA-1122 signalled during: alter database open...
Fri Nov 14 14:53:16 2014
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m001_3752.trc (incident=108903):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\HM_RUN.ams], [26], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 27) 磁碟機找不到請求的扇區。
Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_108903\orcl_m001_3752_i108903.trc
Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_3144.trc (incident=108896):
ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], []
ORA-48102: encountered the end-of-file when reading the file
OSD-04026: 傳遞的參數無效。
O/S-Error: (OS 20) 系統找不到指定的裝置。
我們可以看到,重啟之前Oracle就開始報ORA-00700,ORA-00600以及ORA-48102錯誤。重啟之後的錯誤更是鬱悶,如下:
ORA-01157: cannot identify/lock data file 8 - see DBWR trace file
ORA-01110: data file 8: 'D:\ORACLE\ORADATA\ORCL\ZL9EXPENSE.DBF'
ORA-27047: unable to read the header block of file
OSD-04006: ReadFile() 失敗, 無法讀取檔案
O/S-Error: (OS 38) 已到檔案結尾。
很明顯這是檔案異常了,從作業系統查看,發現這4個檔案大小居然為0了。 這顯然是不正常的。 實際上我檢查發現還有另外2個檔案也是有問題,
可能是檔案頭損壞了,通過dbv校正直接報錯。
最後經過處理之後,成功幫網友搶救了資料,據說最後只是發現某個核心表丟了一點資料,損失不大。
不推薦使用windows來跑Oracle,感覺總是會有一些莫名其妙的問題發生,而且很難搞。還有,資料庫一定要歸檔模式,定期物理備份,否則
一旦出現故障,就是災難性的。