'Asynchronous I/O'에 해당되는 글 1건

  1. 2006.11.06 Asynchronous I/O Does Not Work In 10gr2

주로 Linux plaform 에서 이런현상이 있는거 같더군요.

Applies to:
------------------
Oracle Server - Enterprise Edition - Version: 10.2.0.1.0
Linux Itanium
SUSE \ UnitedLinux x86-64
Red Hat Enterprise Linux Advanced Server x86-64 (AMD Opetron Architecture)
Linux x86-64
Red Hat Enterprise Linux Workstation
Linux x86

Symptoms
------------------
This is Linux Specific Issue. ( RedHat and Suse Linux Mainly )

In Oracle Database 10G you dont need to relink oracle binary with async_on.It comes default with oracle 10G.This note applies in such case wherein async_on is enable at Oracle Database level though Operating System is not able to get the I/O events.

You have set all required parameters for enabling the asynch I/O and finds that asynch I/O is not available from /proc/slabinfo.

SQL> sho parameter disk_asynch_io

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
disk_asynch_io boolean TRUE

SQL> sho parameter filesystemio_options

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
filesystemio_options string SETALL

The Asynchronous I/O does not work.

cat /proc/slabinfo | grep kio ( See the value of kioctx.Its zero )
kioctx 0 0 384 42 1 : tunables 54 27 8 :
slabdata 0 0 0
kiocb 0 0 256 62 1 : tunables 120 60 8 :
slabdata 0 0 0



Cause
---------------
Oracle 10GR2 doesnt requires relinking of oracle binary for async I/O to work but in oracle 10GR2 i found that Oracle is not able to report the I/O activity or event to OS ( in /proc/slabinfo )

As for example.( Please look at the value of kioctx.Its zero )

cat /proc/slabinfo | grep kio
kioctx 0 0 384 42 1 : tunables 54 27 8 : slabdata 0
0 0
kiocb 0 0 256 62 1 : tunables 120 60 8 : slabdata 0
0 0

oracle@tslxprac01:~> cat /proc/sys/fs/aio-nr
0

The reson behind this behavior is that LIBAIO_0.1 Linux OS library is not attached for io_getevents.

So you will have to relink the Oracle 10gr2 with async_on option.Oracle 10gr2 does not come with file called skgaio.o so if you try to relink oracle with async_on , it will fail with following error:

oracle@tslxprac01:/u01/app/oracle/product/10.2.0/db_1/rdbms/lib> make
PL_ORALIBS=-laio -f ins_rdbms.mk async_on ioracle
rm -f /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/skgaioi.o
cp /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/skgaio.o
/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/skgaioi.o
cp: cannot stat `/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/skgaio.o': No
such file or directory
make: Following error says that while trying to relinking oracle 10g with async_on it tried to look for
file called skgaio.o and it got failed because the file skgaio.o is not there.

cp: cannot stat `/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/skgaio.o': No such file or directory

Solution
---------------------
To implement the solution, please execute the following steps:

SQL>shutdown immediate

$cd $ORACLE_HOME/rdbms/lib

$ln -s /usr/lib/libaio.so.1 skgaio.o

$make PL_ORALIBS=-laio -f ins_rdbms.mk async_on

SQL>startup

$grep kio /proc/slabinfo

Posted by pat98
이전버튼 1 이전버튼

05-10 00:00
Flag Counter
Yesterday
Today
Total

글 보관함

최근에 올라온 글

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 달린 댓글