查看: 8534|回复: 5

Ioctl ASYNC_CONFIG error, errno = 11

[复制链接]
论坛徽章:
57
马上加薪
日期:2014-02-19 11:55:142011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:01ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010系统架构师大会纪念
日期:2010-09-03 16:39:572010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010新春纪念徽章
日期:2010-03-01 11:21:02
跳转到指定楼层
1#
发表于 2008-6-13 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
hpux + oracle10203

现象描述:

几分钟产生一个trace,都含有这个错误。
Ioctl ASYNC_CONFIG error, errno = 11

发现一个相关bug 4709673 :

Instance startup failed when disk_asynch_io = true and sga_target > 1G. But with sga_target = 1G, the instance starts up.
Oracle Server - Enterprise Edition - Version: 10.2.0.1 HP-UX PA-RISC (64-bit)

但是现在数据库版本为10203,不能确认这2个是否为同一个?

现在想尝试的解决方法:

1、为了确认bug,请帮忙尝试 sga_target = 1G ,然后看看数据库能否起来?
2、用root修改/etc/privgroup, add “dba MLOCK RTSCHED RTPRIO” into /etc/privgroup
3、加大操作系统参数max_async_ports ,现在阶段(processes为300),调整为1023
4、数据库参数的修改:
        alter system set lock_sga=true scope=spfile;
        alter system set hpux_sched_noage=178 scope=spfile;
5、将数据库参数 dispatchers 设置为空值,例如: dispatchers=''
6、share pool扩大到1.2G
7、修改数据库参数 _JOB_QUEUE_INTERVAL=120

谁遇到过类似的问题希望能共享下,谢谢!

[ 本帖最后由 zhouwf0726 于 2008-6-13 21:10 编辑 ]
论坛徽章:
8
授权会员
日期:2007-03-10 13:09:08ITPUB元老
日期:2007-04-29 12:41:15会员2007贡献徽章
日期:2007-09-26 18:42:10奥运会纪念徽章:摔跤
日期:2008-06-05 14:47:21奥运会纪念徽章:跳水
日期:2008-06-24 15:51:07生肖徽章2007版:蛇
日期:2009-11-11 15:38:102011新春纪念徽章
日期:2011-02-13 11:12:412011新春纪念徽章
日期:2011-02-18 11:42:47
2#
发表于 2008-6-13 11:05 | 只看该作者
默认就是true吧

使用道具 举报

回复
论坛徽章:
57
马上加薪
日期:2014-02-19 11:55:142011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:01ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010系统架构师大会纪念
日期:2010-09-03 16:39:572010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010新春纪念徽章
日期:2010-03-01 11:21:02
3#
 楼主| 发表于 2008-6-13 21:20 | 只看该作者
最后诊断结果2个方案:

1、参照文档 note:139272.1检查异步io配置:

Doc ID:  Note:139272.1 Type:  BULLETIN
Last Revision Date:  21-JUL-2004 Status:  PUBLISHED


PURPOSE
-------

The purpose of this document is to discuss the implementation of
asynchronous i/o (aio) on HP-UX, specifically to enable aio for the Oracle
RDBMS Server.


SCOPE & APPLICATION
-------------------

This note is intended for DBAs and Support Personnel.


1.0 Introduction
================
On HP-UX, when the Oracle datafiles reside on a filesystem, then the DBWR
process(es) make synchronous writes to these datafiles. This means that each
write must return with a 'succesful completion' before the next write is
issued. This serial operation can lead to a i/o bottleneck. There are two ways
to counteract this:
  a. configure multiple DBWR processes
  b. use asynchronous i/o

Before deciding on one of these two options, it should be noted that on HP-UX,
aio is *only* possible on a raw device. Put in another way, aio *cannot* be used
on a filesystem.

Multiple DBWRs can be used on a filesystem.

It is not recommended to use both multiple DBWRs and aio.

2.0 Configuring asynchronous i/o
================================
aio requires configuration of both Oracle and HP-UX

2.1 HP-UX Configuration
-----------------------
a. create the /dev/async character device
   % /sbin/mknod /dev/async c 101 0x0
   % chown oracle:dba /dev/async
   % chmod 660 /dev/async

   If the device does not exist, then ENODEV (Err #19) is returned when the device
   is accessed:
   Async driver not configured  : errno=19

   If the permissions are incorrect, then EACCES (Err #13) is returned:
   Async driver not configured  : errno=13

b. configure the async driver in the kernel
   Using SAM
     -> Kernel Configuration
        -> Drivers
           -> the driver is called 'asyncdsk'
   Generate new kernel
   Reboot

c. set max_async_ports
   Using SAM
     -> Kernel Configuration
        -> Configurable Parameters
           -> max_async_ports

   max_async_ports limits the maximum number of processes that can concurrently
   use /dev/async. Set this parameter to the sum of
     'processes' from init.ora + number of background processes

   The background processes started at instance startup will open /dev/async
   twice.

   If max_async_ports is reached, subsequent processes will use synchronous i/o.

@   NB: at instance startup, the shadow process spawned from svrmgrl is
@   responsible for fork() and exec() of the background processes.
@   This shadow process that fork() and exec()s the background processes
@   already has an open file descriptor for /dev/async. This gets inherited
@   when the background processes are fork'ed. The backgrounds will also open
@   /dev/async. This can be seen from tusc.
  
d. set aio_max_ops
   Using SAM
     -> Kernel Configuration
        -> Configurable Parameters
           -> aio_max_ops

   aio_max_ops limits the maximum number of asynchronous i/o operations that
   can be queued at any time. Set this parameter to the default value (2048),
   and monitor over time (use glance).

e. if HP-UX patch PHKL_22126 (or one that supersedes it) is installed, then
   see Section 3.0

2.2 Oracle Configuration
------------------------
The following init.ora parameters are required.

a. pre 7.3.0
   no init.ora parameters required
b. 7.3.X
   use_async_io = TRUE
c. 8.X
   disk_asynch_io = TRUE     

3.0 Implications of HP-UX Patch PHKL_22126
==========================================

This patch is called:
PHKL_22126: s700_800 11.00 VM,async,hyperfabric

The HP-UX patch description says:
The effective user ID of the process calling async driver,
typically called by a process for database applications such
as Oracle, must be a superuser or the user must
be a member of a group that has the MLOCK privilege.

In essence, aio will not work for Oracle, unless the dba group has the MLOCK
privilege.

To check if a group has the MLOCK privilege, execute:
% /usr/bin/getprivgrp <group-name>

If the dba group is not listed, then set it:
% /usr/sbin/setprivgrp <group-name> MLOCK

Note, the next reboot will clear this privilege. To automate this at startup,
create /etc/privgroup with the entry
dba MLOCK

This can be tested with
% /usr/sbin/setprivgrp -f /etc/privgroup
See 'man 1m setprivgrp' for more information.

If the MLOCK privilege is not granted to the dba group, then instance startup
will exhibit the following:

a. prior to 8.1.7, each background and shadow process will dump a trace file
   with the following:

   Ioctl ASYNC_CONFIG error, errno = 1

   errno 1 is EPERM (Not super-user).

   Such trace files may be found in
      $ORACLE_HOME/rdbms/log
      background_dump_dest
      user_dump_dest

   Additionally, a tusc of instance startup will show the following for
   each background process:
   [16044] open("/dev/async", O_RDWR, 01760) ................ = 14
   ...
   [16044] ioctl(14, 0x80106101, 0x7f7f51b0) ................ ERR#1 EPERM
  
   Similar output will be given for a tusc of a shadow process.

   The instance does start, but i/o is synchronous

b. in 8.1.7, the instance will not start, and will error with:
   SVRMGR> startup
   ORA-00445: background process "PMON" did not start after 120 seconds

   See Note 133007.1 for the alert on this.

c. in 9.0.1, the behaviour is similar to pre-8.1.7, in that trace files with
   the following are dumped:

   Ioctl ASYNC_CONFIG error, errno = 1

   Additionally, the following is also seen:

   Ioctl ASYNC_ADDSEG error, errno = 1

   The instance does start, but i/o is synchronous.

4.0 Checking that Asynchronous i/o is being used
================================================
Async i/o is being used if both the following are true:
  a. /dev/async is open by DBWR
  b. the relevant init.ora partameter is set (see Section 2.2)
@NB - the init.ora parameter is ignored in 8.0, 8.1. 9.0.1
  c. the datafiles are on raw devices
@See Note 186083.1 for discussion on verifying i/o is async

To check if /dev/async is open by DBWR, do one of:
    i. % fuser /dev/async
   ii. % lsof -p <dbwr pid>
         lsof can be downloaded from ftp://vic.cc.purdue.edu/pub/tools/unix/lsof
  iii. use glance/gpm to check files opened by DBWR

NB - Oracle server processes (background and foreground) will attempt to open
     /dev/async if the async driver is enabled in the HP-UX kernel, regardless
     of init.ora settings.

If (a), (b)and (c) are true, and i/o is still perceived to be synchronous, attach
to DBWR with tusc, and check that write calls to /dev/async are not returning an
error. The file descriptor for /dev/async will be needed, which can be retrieved
using lsof.

5.0 The fs_async kernel parameter
=================================
The kernel parameter fs_async can be set to allow asynchronous writes to file
systems. However, write calls can return without the data being physically
written to disk (the write sits in the UNIX buffer cache). The data in question
is file-system metadata such as free space lists, blocks and inodes.
A system crash would potentially lose this data, and leave the filesystem in an
inconsistent state, causing database corruption.

Oracle still opens files with the O_DSYNC flag (see 'tusc' snipet
below), which insists that writes are physically written:
open("/oracle/datafiles/system01.dbf", O_RDWR|O_LARGEFILE|O_DSYNC, 0) = 19

In summary, fs_async is ignored for datafiles(due to open() with O_DSYNC).
However, filesystem metadata may be lost, potentially causing datafile
corruption.

Oracle does not recommend setting fs_async to '1'.

Settings:
  fs_async=0 Do not use async writes to file systems
  fs_async=1 Do async writes to file systems


@Until I find somewhere more suitable to put this, would like to point out that
@if async i/o is enabled, then before starting any i/o through the async driver,
@applications must register shared memory segments with the driver. As part of
@the registration, the driver locks the memory



2、bug 4245670

@ 1.When exceeding the upper bound of the "Lockable" memory,  @   HP-UX changes async I/O into sync I/O.  
@ .
@ 2.The following errors are output when 1.(above event) is occured.
@   "Ioctl ASYNC_CONFIG error, errno = 11" (in Oracle trace files)
@ .
@ 3.Excluding Oracle's SGA, other softwares use "Lockable" memory.
@   So, after confirming the amount of the "Lockable" memory remainder,  
@   it is necessary to adjust SGA.  
@ .
@ 4.A present amount of the "Lockable" memory remainder can be confirmed  
@   by the following command.  
@   # echo lockable_mem | kwdb -q4 /stand/vmunix /dev/kmem
@   NOTE: kwdb is a debugging tool. This tool might change the OS kernel.  
@ .
@ 5.The upper bound of the "Lockable" memory increases when a physical memory  
@   is expanded.  
@ .
@ 6.If swapmem_on changes 0 (0 is off. default value is 1), the upper bound  
@   of the "Lockable" memory increases. However, administrator should secure  
@   a resource enough so that the process do not swap out.  
@ .
@ .
@ So this issue is not Oracle problem.
@ I closed the bug as status 95.
@ .
@ Thanks for long time.

使用道具 举报

回复
论坛徽章:
103
操作系统板块每日发贴之星
日期:2005-06-21 01:01:50奥运会纪念徽章:自行车
日期:2012-10-03 15:17:15季节之章:秋
日期:2009-09-26 12:46:26季节之章:春
日期:2009-03-17 18:05:17季节之章:冬
日期:2008-12-01 14:39:08玉石琵琶
日期:2008-05-04 12:15:532008版在线时间
日期:2008-05-01 17:49:02ITPUB元老
日期:2008-03-16 18:47:22祖母绿
日期:2007-10-15 22:01:47BLOG每周发帖之星
日期:2006-10-01 01:35:23
4#
发表于 2010-4-12 16:54 | 只看该作者
我直接吧trace选项禁用了~

使用道具 举报

回复
论坛徽章:
114
授权会员
日期:2005-10-30 17:05:332013年新春福章
日期:2013-02-25 14:51:24奔驰
日期:2013-08-01 21:18:36宝马
日期:2013-12-04 21:52:282014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
5#
发表于 2010-4-12 17:26 | 只看该作者

使用道具 举报

回复
论坛徽章:
103
操作系统板块每日发贴之星
日期:2005-06-21 01:01:50奥运会纪念徽章:自行车
日期:2012-10-03 15:17:15季节之章:秋
日期:2009-09-26 12:46:26季节之章:春
日期:2009-03-17 18:05:17季节之章:冬
日期:2008-12-01 14:39:08玉石琵琶
日期:2008-05-04 12:15:532008版在线时间
日期:2008-05-01 17:49:02ITPUB元老
日期:2008-03-16 18:47:22祖母绿
日期:2007-10-15 22:01:47BLOG每周发帖之星
日期:2006-10-01 01:35:23
6#
发表于 2010-4-12 18:02 | 只看该作者
看来需要升级操作系统呢

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表