REASON
1. You can get significant performance in I/O operations on DB
To verify ASYNCH
To verify whether the oracle executable ($ORACLE_HOME/bin/oracle) was linked with asynchronous I/O, run
In the following example, oracle is linked with asynchronous I/O, otherwise you get nothing.
ldd $ORACLE_HOME/bin/oracle | grep libaio
libaio.so.1 => /usr/lib64/libaio.so.1 (0x0000002a96ef7000)
nm $ORACLE_HOME/bin/oracle | grep io_getevent
w io_getevents@@LIBAIO_0.4
Link ASYNCH to oracle, if it is not linked
shutdown all
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk async_on
make -f ins_rdbms.mk ioracle
startup
Even if oracle is linked it doesn’t mean your ASYNCH is ON.
Change parameter in case of block device like RAW
# init.ora
disk_asynch_io = true
or
#spfile
alter system set disk_asynch_io = true scope=spfile;
and if you have file system like ext3 than add this one also
# init.ora
filesystemio_options = asynch
or
#spfile
alter system set filesystemio_options='ASYNCH' scope=both;
Check your job
ASYNCH is ON
cat /proc/slabinfo | grep kio
kioctx 305 360 384 10 1 : tunables 54 27 8 : slabdata 36 36 0
kiocb 255 255 256 15 1 : tunables 120 60 8 : slabdata 17 17 0
Uninstall, Fall back
shutdown all
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk async_off
make -f ins_rdbms.mk ioracle
startup
ASYNCH is OFF
cat /proc/slabinfo | grep kio
kioctx 121 140 384 10 1 : tunables 54 27 8 : slabdata 14 14 0
kiocb 0 0 256 15 1 : tunables 120 60 8 : slabdata 0 0 0