ORA-27069和OSD-4026錯誤引起資料庫CRASH

yangtingkun發表於2011-04-25

在一個客戶的9201 for Windows資料庫中發現了這個錯誤。

 

 

客戶的資料庫經常出現CRASH的問題,檢查後發現,在出現CRASH之前,ALERT中記錄了下面的錯誤:

Fri Jan 28 15:13:58 2011
KCF: write/open error block=0x300019 nline=1
file=9 D:\ORACLE\ORADATA\SXNCSW\USERS01.DBF
error=27069 txt: 'OSD-04026:
傳遞的引數無效。 (OS 3145753)'
Fri Jan 28 15:13:58 2011
Errors in file d:\oracle\admin\sxncsw\bdump\sxncsw_dbw0_1504.trc:
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode
ORA-01114: IO error writing block to file 9 (block # 3145753)
ORA-01110: data file 9: 'D:\ORACLE\ORADATA\SXNCSW\USERS01.DBF'
ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file
OSD-04026:
傳遞的引數無效。 (OS 3145753)

DBW0: terminating instance due to error 1242
Fri Jan 28 15:14:00 2011
Errors in file d:\oracle\admin\sxncsw\bdump\sxncsw_pmon_1480.trc:
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode

Instance terminated by DBW0, pid = 1504
Dump file d:\oracle\admin\sxncsw\bdump\alert_sxncsw.log

ORA-27069錯誤和OSD-4026錯誤的資訊不難看出,這些錯誤一般和作業系統命令有關,最後出現了ORA-1242錯誤,且資料庫出現了CRASH

查詢metalink發現,這是Windows環境下Oracle9i的一個bug1668488。這個bug影響NT環境9.2.0.3以前版本的資料庫,當資料檔案大小超過4G並嘗試擴充套件,就可能導致這個檔案的讀寫錯誤,對於ARCHIVELOG模式可能導致資料檔案需要恢復,而對於NOARCHIVELOG模式,則會導致CRASH

而客戶的Windows2000,資料庫版本是9.2.0.1,檢查發現這個USERS表空間的大小已經達到了31G,難怪頻繁出現CRASH的問題。

SQL> SELECT A.TABLESPACE_NAME, TOTAL, FREE, FREE/TOTAL*100 PCT_FREE
  2  FROM (SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 TOTAL FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A,
  3  (SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 FREE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) B
  4  WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+);

TABLESPACE_NAME                     TOTAL       FREE   PCT_FREE
------------------------------ ---------- ---------- ----------
CWMLITE                         .01953125 .010375977     53.125
DATA                            29.296875 27.2373657 92.9702083
DRSYS                           .01953125 .010070801    51.5625
EXAMPLE                        .145874023 .000488281 .334728033
INDX                            2.9296875 2.92962646 99.9979167
ODM                             .01953125 .010375977     53.125
PERFSTAT                                2 1.88787842 94.3939209
SYSTEM                         .439453125 .006530762 1.48611111
TOOLS                          .009765625 .003845215     39.375
UNDOTBS1                       2.97851563 .035827637 1.20286885
USERS                          31.4990234 1.23046875 3.90637111
XDB                            .037231445 .000183105 .491803279

已選擇12行。

除了升級作業系統和資料庫版本外,解決這個問題的最簡單的辦法就是多建立幾個資料檔案,來避免單個檔案超過4G的情況。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-693713/,如需轉載,請註明出處,否則將追究法律責任。

相關文章