HP-UX平台Ioctl ASYNC_CONFIG error, errno =11报错分析
最近一用户的数据库出现以下报错:Ioctl ASYNC_CONFIG error, errno = 11环境如下:HP-UX 11.31,ORACLE 10.2.0.5.7经查询metali
最近一用户的数据库出现以下报错:
Ioctl ASYNC_CONFIG error, errno = 11
环境如下:
HP-UX 11.31,Oracle 10.2.0.5.7
经查询metalink,针对这个问题的说明如下:
Applies to:
Oracle Server - Enterprise Edition - Version: 9.2.0.1 and later [Release: 9.2 and later ]
HP-UX PA-RISC (64-bit)
HP-UX PA-RISC (32-bit)
HP-UX Itanium
HP-UX Itanium (32-bit)
Symptoms
On HP Platforms with Asynchronous IO configured you are receiving the following error message:
Ioctl ASYNC_CONFIG error, errno = %s
NOTE:
%s is replaced with the actual error number
Cause
The general cause is an inapproriate configuration of system requirements, e.g. settings, resources, privileges.
Solution
The following sections refer to the actual error number in the message
Ioctl ASYNC_CONFIG error, errno = %s
errno = 1
Make sure the oracle software group owner, usually "dba", is granted MLOCK, RTSCHED and RTPRIO permissions:
(1) # /usr/sbin/setprivgrp dba MLOCK
(2) # vi /etc/privgroup
-- This should contain dba MLOCK RTSCHED RTPRIO
(3) # cat /etc/privgroup
dba MLOCK RTSCHED RTPRIO
NOTE:
On 8.1.7 and prior releases, please make sure to install patch PHKL_22126 or newer
Refer to
Note 133007.1 ALERT:HP-UX: 8.1.7 RDBMS will not start if the async disk driver is configured
errno = 7
The message may also appear in the format:
Ioctl ASYNC_ADDSEG error, errno = 7
Taking a Unix level tusc/truss/strace output shows the following:
pstat(PSTAT_PROC_VM, 0x9fffffffffff56b0, 104, 0, 129) ................................................................................. = 1
ioctl(8, ASYNC_ADDSEG, 0x9fffffffffff5690) ............................................................................................ ERR#7 E2BIG
open("/u01/app/diag/rdbms/orcl/ORCL/trace/ORCL_ora_1005.trc", O_WRONLY|O_APPEND|O_CREAT|0x800, 0664) ............ = 9
The SHMMAX kernel parameter is set too low, so the database requires a lots of shared memory segments (rather than just a few). The large number of shared memory segments exceeds an internal limit and causes the E2BIG (Unix error 7) to occur.
Solution is to increase SHMMAX kernel parameter and restart the database.
errno = 11
Error #11 (EAGAIN) can occur due to the fact that no more real memory is available for ioctl to lock. This typically occurs when there are many concurrent sessions
Solution is to increase the amount of physical memory (RAM)
NOTE:
Increasing virtual memory by using more Swap won't help
Disabling Asynchronous IO
For Oracle version 10.1 and prior, we will check if '/dev/async' is present and will try to use it for memory locking which is needed for async I/O for SGA memory pages via ioctl. Oracle makes use of '/dev/async' only if the HP async device driver is properly configured for read and write. This is irrespective of whether the DISK_ASYNCH_IO parameter is set to TRUE.
So Oracle will use async I/O regardless of the value of init.ora settings
disk_asynch_io
filesystemio_options
Prior to 10.2, to inactivate ASYNCH_IO with Oracle, the workaround is to:
chown bin:bin /dev/async
chmod 660 /dev/async
As of 10.2, asynchronous I/O can be disabled using the designated parameters
disk_asynch_io=FALSE
--AND/OR--
filesystemio_options=none
更多Oracle相关信息见Oracle 专题页面 ?tid=12
,