近期的alert日志中碰到了ORA-27090的错误信息。其错误提示为Unable to reserve kernel resources for asynchronous disk I/O。依据这个提示来看是跟异步I/O相关的内核參数问题。

以下是这个问题的描写叙述与解决。

1、故障错误信息
Wed Sep 10 09:58:17 CST 2014
Errors in file /u01/app/oracle/admin/orclls/bdump/orclls_p000_47020.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Additional information: 128
Additional information: 65536
Wed Sep 10 09:58:17 CST 2014
Errors in file /u01/app/oracle/admin/orclls/bdump/orclls_p002_47024.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Additional information: 128
Additional information: 65536

2、故障分析
#调用oerr,没有获得比較有价值的信息,例如以下:
suse11b:oracle:orcl102 > oerr ora 27090
27090, 00000, "Unable to reserve kernel resources for asynchronous disk I/O"
// *Cause:  The system call to reserve kernel resources for asynchronous I/O
//          has failed.
// *Action: Check errno

#进一步查看trace文件。注,当前数据库版本号为10.2.0.5。OS为suse 11 sp3
suse11a:oracle:orcl101 > more /u01/app/oracle/admin/orclls/bdump/orclls_p002_47024.trc
/u01/app/oracle/admin/orclls/bdump/orclls_p002_47024.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/10.2/db_1
System name:    Linux
Node name:      suse11a
Release:        3.0.76-0.11-default
Version:        #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990)
Machine:        x86_64
Instance name: orclls
Redo thread mounted by this instance: 1
Oracle process number: 35
Unix process pid: 47024, image: oracle@suse11a (P002)

*** SERVICE NAME:() 2014-09-10 09:58:17.159
*** SESSION ID:(1072.1) 2014-09-10 09:58:17.159
*** 2014-09-10 09:58:17.159
KCRP: blocks claimed = 0, eliminated = 0
----- Recovery Hash Table Statistics ---------
Hash table buckets = 32768
Longest hash chain = 0
Average hash chain = 0/0 = 0.0
Max compares per lookup = 0
Avg compares per lookup = 0/0 = 0.0
----------------------------------------------
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Additional information: 128
Additional information: 65536
----- Recovery Hash Table Statistics ---------
Hash table buckets = 32768
Longest hash chain = 0
Average hash chain = 0/0 = 0.0
Max compares per lookup = 0
Avg compares per lookup = 0/0 = 0.0
----------------------------------------------
#从trace文件里也没有获得比較有价值的信息

3、故障解决
#依据ORA-27090: MESSAGE 27090 NOT FOUND; (文档 ID 579108.1)文档。我们改动内核參数fs.aio-max-nr
#因为此数据库为RAC环境下,因此同一时候调整了2个节点,以下为调整后的情形。
suse11a:~ # grep max-nr /etc/sysctl.conf
#fs.aio-max-nr = 1048576
fs.aio-max-nr = 3145728

suse11b:~ # grep max-nr /etc/sysctl.conf
#aio-max-nr = 1048576
fs.aio-max-nr = 3145728

suse11a:~ # sysctl -p
suse11b:~ # sysctl -p

#配置完成后能够通过cluvy校验
#几日后观察alert日志,未发现该类错误。

Check: Kernel parameter for "aio-max-nr"
  Node Name         Current       Configured    Required      Status        Comment    
  ----------------  ------------  ------------  ------------  ------------  ------------
  suse11a           3145728       3145728       1048576       passed         
  suse11b           3145728       3145728       1048576       passed         
Result: Kernel parameter check passed for "aio-max-nr"

ORA-27090 故障一例的更多相关文章

  1. ORA-01092 ORA-12432: LBAC error: zllegnp:OCIStmtExecute 故障一例

    最近由于数据库hang住,无奈之下直接干掉了pmon进程,再次启动的时候收到了ORA-01092: ORACLE instance terminated. Disconnection forced以及 ...

  2. ubuntu下处理mysql无法启动故障一例

    故障现象: mysql无法启动 1: dmesg |grep mysql [101353.820000] init: mysql post-start process (9077) terminate ...

  3. ORA-00020: No more process state objects available故障一例

    今天公司一大早收到通知,昨天数据库数据未生成.当时查看跑批的日志,发现平常只需运行半个小时的过程,今天整整运行了7个小时(明显存在问题),导致后续数据正常时间读取失败.为了了解起因,查看了oracle ...

  4. mingw 环境编译 liburl故障一例

    环境是 windows 10,已经安装 mingw,并设置好mingw 和 msys的环境变量 C:\Users\cracker>set |grep MinGW Path=C:\Program ...

  5. VirtualBox故障一例

    早上的测试环境,估计是任务太重了吧,在点击VirtualBox的快速休眠后,就没有响应了,查看日志,内容都是: aComponent={Console} aText={The virtual mach ...

  6. 用STRACE解决公司真实故障一例

    这是相关分析文档.为了职业操守,已修改相关公司敏感信息~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ 关于论坛每五分钟左右,会有warning.html跳转出现的原因调查 (warning. ...

  7. MYSQL主从同步故障一例及解决过程

    公司里有两个mysql服务器做主从同步,某天Nagios发来报警短信,mysqla is down...赶紧联系机房,机房的人反馈来的信息是 HARDWARE ERROR 后面信息省略,让机房记下错误 ...

  8. cherokee +php fastcgi 出现 No input file specified 故障一例

    在arch上编译cherokee 时用的--with-wwwroot=/srv/http.在建立虚拟服务器时,只要虚拟服务器的根目录位于/srv/http下,php页面都能正确运行.但只要将拟服务器的 ...

  9. GTID环境中手动修复主从故障一例(Error 1236/Error 1396)

      Preface       I got an replication error 1236 when I modified the password of a user without start ...

随机推荐

  1. How to install WP 8.0 SDK if WP 8.1 SDK is installed?

    I have the Windows Phone 8.1 SDK on my dev pc installed together with VS 2013. I need to open some W ...

  2. 转 UIActivityIndicatorView、UIProgressView 活动与进度指示器-IOS开发

    活动指示器(UIActivityIndicatorView)可以告知用户有一个操作正在进行中.进度指示器(UIProgressView )也具有同样功能,而且还可以告知用户离操作结束还多远. 这两个指 ...

  3. myeclipse 修改freemarker ftl 不重启tomcat

    最 近的项目是SSH,View层采用Freemarker,但是遇到了一个很大问题,每次修改完ftl文件,都要重新启动tomcat才可以看到所修改的内 容,不但麻烦,而且浪费时间,特别怀念jsp,后来在 ...

  4. json-lib包笔记

    json-lib.jar开发包使用: 依赖包:commons-beanutils.jar;commons-httpclient.jar;commons-lang.jar;ezmorph.jar;不少人 ...

  5. Ceph rgws客户端验证

    修改/etc/ceph/ceph.conf文件,加入rados gw监听的端口 [client.rgw.rgws] rgw_frontends = "civetweb port=80&quo ...

  6. Coursera课程《Python数据结构》中课件

    You can access the Google Drive containing all of the current and in-progress lecture slides for thi ...

  7. 从volatile说到i++的线程安全问题

    简介 volatile关键字保证了在多线程环境下,被修饰的变量在别修改后会马上同步到主存,这样该线程对这个变量的修改就是对所有其他线程可见的,其他线程能够马上读到这个修改后值. Thread的本地内存 ...

  8. C/C++ 语言获取文件大小

    在C语言中测试文件的大小,主要使用二个标准函数. 1.fseek 函数原型:int fseek ( FILE * stream, long int offset, int origin ); 参数说明 ...

  9. Median of Two Sorted Array leetcode java

    题目: There are two sorted arrays A and B of size m and n respectively. Find the median of the two sor ...

  10. Java中浮点类型的精度问题 double float

    要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法与浮点数的结构组成.因为机器只认识01,你想表示小数,你要机器认识小数点这个东西,必须采用某种方法.比如,简单点的,float四个字 ...