最近一用戶的數(shù)據(jù)庫出現(xiàn)以下報錯:
Ioctl ASYNC_CONFIG error, errno = 11
環(huán)境如下:
HP-UX 11.31,Oracle 10.2.0.5.7
經(jīng)查詢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
本文出自:億恩科技【mszdt.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|