在Linux上Oracle如何启用异步IO?

2014-11-24 19:00:22 · 作者: · 浏览: 27

首先要检查操作系统上,异步io的相关包是否已经安装,如果没有的话,通过rpm进行安装,并检查系统上异步io的参数设置:


[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-nr


1048576


然后检查数据库在链接时是否已经加载了aio的包:


[oracle@localhost ~]$ /usr/bin/ldd $ORACLE_HOME/bin/oracle | grep libaio


libaio.so.1 => /lib64/libaio.so.1 (0x0000003e13000000)


如果没有看到libaio的包,说明Oracle没有链接aio,那么这时就需要重新make oracle的可执行文件,9i的方法为:


make -f ins_rdbms.mk async_on


make -f ins_rdbms.mk ioracle


10g以后的方法为:


make PL_ORALIBS=-laio -f ins_rdbms.mk async_on


编译完成后,操作系统的设置完成,还需要设置数据库的初始化参数:


SQL> show parameter disk_asynch_io


NAME TYPE VALUE


------------------------------------ -------------------------------- --------------------


disk_asynch_io boolean TRUE


SQL> show parameter filesystemio_options


NAME TYPE VALUE


------------------------------------ -------------------------------- ------------------


filesystemio_options string none


对于裸设备而言,这样的设置就足够了,但是对于文件系统而言,还需要讲filesystemio_options设置为ASYNCH并重启数据库:


SQL> ALTER SYSTEM SET FILESYSTEMIO_OPTIONS = ASYNCH SCOPE = SPFILE;


System altered.


合理的安排设置参数的顺序,可减少数据库的重启次数。这是因为编译oracle可执行文件的时候也要关闭数据库。