【ASYNC IO】HP-UNIX_ORACLE10G_ASYNC IO ERROR

今天无意中开发数据库下的udump产生大量的trace文件,内容如下:

[EPDEV]/u01/oracle/admin/epdev/udump$more epdev_ora_25840.trc
/u01/oracle/admin/epdev/udump/epdev_ora_25840.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/oracle/product/10.2.0/db
System name:    HP-UX
Node name:      dbrac
Release:        B.11.11
Version:        U
Machine:        9000/800
Instance name: epdev
Redo thread mounted by this instance: 1
Oracle process number: 0
Unix process pid: 25840, image: oracle@dbrac
Ioctl ASYNC_CONFIG error, errno = 1

原来是异步IO配置有问题,对照之前在另一个系统上实施的异步IO的文档,发现有些不对。
/dev/async这个文件的属主为bin:bin   权限为666   按照实施文档应该为oracle:dba   660
不存在/etc/privgroup文件
估计是之前有过配置,但后来主机重启后,配置失效,所以产生了大量的报错。
按照Metalink上Oracle的说法
Oracle (for HP only) 总是使用 async I/O 而不管初始值的设置
(disk_asynch_io=FALSE and filesystemio_options=none).
参数 filesystemio_options=none 不起作用.
不管DISK_ASYNC_IO的设置如何,只要有wr的权限,Oracle总是能成功打开/dev/async 
在Oracle 9.2版本,要停止异步IO的workaround 为:
   chown bin:bin /dev/async
   chmod 660 /dev/async
   
Grant dba group  MLOCK 权限以避免ASYNC_CONFIG trace file错误:
(以root用户)
(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


Oracle 10.2 version, 下列的设置将终止trace:
disk_asynch_io=FALSE
filesystemio_options=none 
 

按照以上方法
# /usr/sbin/setprivgrp dba  MLOCK
# vi /etc/privgroup 加入dba MLOCK RTSCHED RTPRIO
后没有再发现trace文件产生


注:metalink的文档号为:
Subject:  How to disable asynch_io on HP to avoid Ioctl Async_config Error Errno = 1 
Doc ID:  302801.1 

2014.12.05



你可能感兴趣的:(IO,async,oracle10g,HP_UNIX)