HP-UX平臺Ioctl ASYNC_CONFIG error, errno =7報錯分析

聽海★藍心夢發表於2013-09-26

檢視一套oracle 11.2 rac for hp-unix資料庫出現以下報錯:
Ioctl ASYNC_CONFIG error, errno = 7
 
環境如下:
HP-UX 11.31,Oracle 11.2.0.3.6

 
經查詢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

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

相關文章