《hp-unix下为oracle配置异步io》由会员分享,可在线阅读,更多相关《hp-unix下为oracle配置异步io(5页珍藏版)》请在金锄头文库上搜索。
1、ExportZone,lun,prosent PURPOSE-The purpose of this document is to discuss the implementation ofasynchronous i/o (aio) on HP-UX, specifically to enable aio for the OracleRDBMS Server.SCOPE & APPLICATION-This note is intended for DBAs and Support Personnel.1.0 Introduction=On HP-UX, when the Oracle da
2、tafiles reside on a filesystem, then the DBWRprocess(es) make synchronous writes to these datafiles. This means that eachwrite must return with a succesful completion before the next write isissued. This serial operation can lead to a i/o bottleneck. There are two waysto counteract this:a. configure
3、 multiple DBWR processesb. use asynchronous i/oBefore 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 usedon a filesystem.Multiple DBWRs can be used on a filesystem.It is not recommended to use both mu
4、ltiple DBWRs and aio.2.0 Configuring asynchronous i/o=aio requires configuration of both Oracle and HP-UX2.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/asyncIf the device does not exist, then ENODEV (Er
5、r #19) is returned when the deviceis accessed:Async driver not configured : errno=19If the permissions are incorrect, then EACCES (Err #13) is returned:Async driver not configured : errno=13b. configure the async driver in the kernelUsing SAM- Kernel Configuration- Drivers- the driver is called asyn
6、cdskGenerate new kernelRebootc. set max_async_portsUsing SAM- Kernel Configuration- Configurable Parameters- max_async_portsmax_async_ports limits the maximum number of processes that can concurrentlyuse /dev/async. Set this parameter to the sum ofprocesses from init.ora + number of background proce
7、ssesThe background processes started at instance startup will open /dev/asynctwice.If max_async_ports is reached, subsequent processes will use synchronous i/o.d. set aio_max_opsUsing SAM- Kernel Configuration- Configurable Parameters- aio_max_opsaio_max_ops limits the maximum number of asynchronous
8、 i/o operations thatcan 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, thensee Section 3.02.2 Oracle Configuration-The following init.ora parameters are required.a. pre 7.
9、3.0no init.ora parameters requiredb. 7.3.Xuse_async_io = TRUEc. 8.Xdisk_asynch_io = TRUE3.0 Implications of HP-UX Patch PHKL_22126=This patch is called:PHKL_22126: s700_800 11.00 VM,async,hyperfabricThe HP-UX patch description says:The effective user ID of the process calling async driver,typically
10、called by a process for database applications suchas Oracle, must be a superuser or the user mustbe a member of a group that has the MLOCK privilege.In essence, aio will not work for Oracle, unless the dba group has the MLOCKprivilege.To check if a group has the MLOCK privilege, execute:% /usr/bin/g
11、etprivgrp If the dba group is not listed, then set it:% /usr/sbin/setprivgrp MLOCKNote, the next reboot will clear this privilege. To automate this at startup,create /etc/privgroup with the entrydba MLOCKThis can be tested with% /usr/sbin/setprivgrp -f /etc/privgroupSee man 1m setprivgrp for more in
12、formation.If the MLOCK privilege is not granted to the dba group, then instance startupwill exhibit the following:a. prior to 8.1.7, each background and shadow process will dump a trace filewith the following:Ioctl ASYNC_CONFIG error, errno = 1errno 1 is EPERM (Not super-user).Such trace files may b
13、e found in$ORACLE_HOME/rdbms/logbackground_dump_destuser_dump_destAdditionally, a tusc of instance startup will show the following foreach background process:16044 open(/dev/async, O_RDWR, 01760) . = 14.16044 ioctl(14, 0x80106101, 0x7f7f51b0) . ERR#1 EPERMSimilar output will be given for a tusc of a
14、 shadow process.The instance does start, but i/o is synchronousb. in 8.1.7, the instance will not start, and will error with:SVRMGR startupORA-00445: background process PMON did not start after 120 secondsSee NOTE:133007.1 for the alert on this.c. in 9.0.1, the behaviour is similar to pre-8.1.7, in
15、that trace files withthe following are dumped:Ioctl ASYNC_CONFIG error, errno = 1Additionally, the following is also seen:Ioctl ASYNC_ADDSEG error, errno = 1The 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 DBWRb. the relevant init.ora partameter is set (see Section 2.2)c. the datafiles are on raw devicesTo check if /dev/async is open by DBWR, do one of:i. % fuser /dev/asyncii. % lsof -p lso