上周一早上对一台外网的数据库进行日检,发现alert日志中报如下错误:
Errors in file /home/oracle/admin/emspda/bdump/emspda2_p001_23490.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 4: Interrupted system call
Additional information: 3
Additional information: 128
Additional information: 65536
Sat Apr 28 15:52:21 CST 2012
Errors in file /home/oracle/admin/emspda/bdump/emspda2_p003_23499.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 4: Interrupted system call
Additional information: 3
Additional information: 128
Additional information: 65536
Sat Apr 28 15:52:21 CST 2012
Warning: recovery process cannot use async I/O
Sat Apr 28 15:52:21 CST 2012
Warning: recovery process cannot use async I/O
Sat Apr 28 15:52:21 CST 2012
Errors in file /home/oracle/admin/emspda/bdump/emspda2_p014_23526.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 4: Interrupted system call
Additional information: 3
Additional information: 128
Additional information: 65536
Sat Apr 28 15:52:21 CST 2012
Errors in file /home/oracle/admin/emspda/bdump/emspda2_p011_23520.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 4: Interrupted system call
Additional information: 3
Additional information: 128
Additional information: 65536
Sat Apr 28 15:52:21 CST 2012
Errors in file /home/oracle/admin/emspda/bdump/emspda2_p002_23492.trc:
通过分析,认为这个应该是os上的有关io设置方面的问题,查看文章:
ORA-27090: MESSAGE 27090 NOT FOUND; [ID 579108.1] | |||||
| |||||
Modified 12-APR-2012 Type PROBLEM Status PUBLISHED |
In this Document
Symptoms
Cause
Solution
References
Applies to:
Oracle Server - Enterprise Edition - Version: 10.2.0.4 and later [Release: 10.2 and later ]
Linux x86
Linux x86-64
Oracle Server Enterprise Edition - Version: 10.2.0.4
10.2.0.4
***Checked for relevance on 31-Oct-2011***
Symptoms
You discover messages of this nature in your alert log:
Additional information: 3
Additional information: 128
Additional information: 65536
- OR -
ORA-27090: UNABLE TO RESERVE KERNEL RESOURCES FOR ASYNCHRONOUS DISK I/O
Additional information: 3
Additional information: 128
Additional information: 65536
- OR -
Linux-x86_64 Error: 4: Interrupted system call
Additional information: 3
Additional information: 128
Additional information: 65536
Strace against DBWR shows:
which is related to "aio-max-nr" kernel limit.
Cause
The "aio-max-nr" kernel limit is too low.
Solution
The "aio-max-nr" kernel limit should be adjusted according to Oracle recommendations which are available in this document:
Oracle Validated Configuration:
http://linux.oracle.com/pls/apex/f?p=102:2:2007385298933639::NO::P2_VC_ID:426
Also, this parameter should be set as follows:
-------------------------------------
fs.aio-max-nr= 3145728
-------------------------------------
通过上面的说法,是系统参数:fs.aio-max-nr设置的太小。
查看本数据库服务器上的设置:etc/sysctl.conf,这个文件里面根本就没有设置此参数。再查看系统中此参数的大小:
$ cat /proc/sys/fs/aio-max-nr
65536
这个应该是操作系统默认设置的,而oracle建议设大些。
在/etc/sysctl.conf中设置这个参数,并执行sysctl -p使其生效。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12129601/viewspace-722911/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12129601/viewspace-722911/