分类: 系统运维
2011-11-21 11:28:05
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 bug为bug 。可考虑加大maxreqs至8192或更大解决该问题。
参考文档:ORA-01115 ORA-01110 ORA-27091 ORA-27072 Error: 5: I/O error [ID 559697.1]
通过重启应用程序,暂时解决该问题。
OS参数设置及重启数据库修改OS参数maxreqs为8192或更大,可通过如下步骤完成:
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、重启数据库