應用程式報ORA-01115錯誤

liglewang發表於2011-08-03

ORA-01115: IO error reading block from file 50 (block # 1624)

ORA-01110: data file 50: '/dev/ra_dhyx02'

ORA-27091: skgfqio: unable to queue I/O

ORA-27072: skgfdisp: I/O error

IBM AIX RISC System/6000 Error: 5: I/O error ; nested exception is

java.sql.SQLException: ORA-01115: IO error reading block from file 50 (block # 1624)

ORA-01110: data file 50: '/dev/ra_dhyx02'

ORA-27091: skgfqio: unable to queue I/O

ORA-27072: skgfdisp: I/O error

IBM AIX RISC System/6000 Error: 5: I/O error

java.sql.SQLException: ORA-01115: IO error reading block from file 50 (block # 1624)

ORA-01110: data file 50: '/dev/ra_dhyx02'

ORA-27091: skgfqio: unable to queue I/O

ORA-27072: skgfdisp: I/O error

IBM AIX RISC System/6000 Error: 5: I/O error

由錯誤資訊中的ORA-01115: IO error reading block from file 50 (block # 1624)來看,並不是由於壞塊引起,而是在讀取資料檔案/dev/ra_dhyx02時遇到I/O錯誤。

經過確認,是由於作業系統引數maxreqs引數設定過低(預設值為4096),且Oracle 9.2.0.8(本資料庫版本)版本在IBM AIX(5300-06) on POWER System(64-bit)中可能會發生這類錯誤,對應的Oracle bugbug 。可考慮加大maxreqs8192或更大解決該問題。

參考文件:ORA-01115 ORA-01110 ORA-27091 ORA-27072 Error: 5: I/O error [ID 559697.1]

透過重啟應用程式,暫時解決該問題。

OS引數設定及重啟資料庫

修改OS引數maxreqs8192或更大,可透過如下步驟完成:

1、1、仔細核實maxreqs引數設定
root@hiuccs1:/> aioo –o 或者 lsattr -El aio0

2、2、動態調整maxreqs
root@hiuccs1:/> aioo –o maxreqs=8192

3、3、永久設定maxreqs引數(保證下次小機重啟仍然有效)
root@hiuccs1:/> chdev -l aio0 -a maxreqs=8192 -P

4、4、確認更改已生效

root@hiuccs1:/> aioo –o

5、5、重啟資料庫

[@more@]

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

相關文章