I just solved the problem of asynchronous io. I 'd like to describe how to set asynchronous IO in Oracle.
First, check whether the package of asynchronous io has been installed on the operating system. If not, install it through rpm and check the parameter settings of asynchronous io on the system:
[Oracle @ localhost ~] $ Rpm-qa | grep aio
Libaio-0.3.107-10.el6.x86_64
Libaio-devel-0.3.107-10.el6.x86_64 [oracle @ localhost ~] $ More/proc/sys/fs/aio-max-nr1048576 and then check if the database has loaded the aio package at the link:
[Oracle @ localhost ~] $/Usr/bin/ldd $ ORACLE_HOME/bin/oracle | grep libaio
Libaio. so.1 =>/lib64/libaio. so.1 (0x0000003e13000000) If you do not see the libaio package, it means that Oracle does not have a link to aio, then you need to re-make the oracle executable file. The 9i method is:
Make-f ins_rdbms.mk async_on
The method after make-f ins_rdbms.mk ioracle10g is:
Make PL_ORALIBS =-laio-f ins_rdbms.mk async_on:
SQL> SHOWparameter disk_asynch_io
NAMETYPEVALUE ------------------------------------ -------------------------------- ---------------------- disk_asynch_ioBOOLEANTRUESQL> SHOWparameter filesystemio_options
NAMETYPEVALUE setting -------------------------------- ------------------ filesystemio_options stringNONE is sufficient for bare devices. However, for file systems, you need to set filesystemio_options to ASYNCH and restart the database:
SQL> ALTERSYSTEMSETFILESYSTEMIO_OPTIONS = ASYNCH SCOPE = SPFILE;
System altered. Because the database should be closed when compiling oracle executable files, the parameter order can be reasonably arranged to reduce the number of database restarts.