Активирование асинхронного ввода/вывода в среде Red Hat Linux 9. Линкование Oracle9iR2 для использования AIO.

В статье рассмотрена процедура активации асинхронного ввода-вывода в среде Red Hat Linux 9 (ядро 2.6.8) и сборки СУБД Oracle9iR2 с использованием этой функции

[Борис Державец (dba477@list.ru)]

Активирование асинхронного ввода/вывода для Oracle9iR2(9.2.0.4) в среде Linux 2.6.8

Замечание редактора: первоначально в данной статье шла речь об активировании AIO в среде Red Hat Linux 9 (ядро 2.4.20). Однако, впоследствии выяснилось, что kernel-RPMs RHL 9, вопреки информации, опубликованной на http://atrpms.net, не проходили тесты aio-stress и не поддерживают асинхронный ввод-вывод. Для устранения этого недостатка автор предложил либо прейти на RHEL AS/ES 3, либо обновить ядро до версии 2.6.8. Последнему варианту, как наиболее доступному для большинства читателей, и посвящена эта статья.

Первое:
Download aio-stress.c from [1] и откомпилируйте его:

   gcc -Wall -laio -lpthread -o aio-stress aio-stress.c
Выполните aio-stress тесты и удостоверьтесь, что ядро поддерживает AIO

Второе:
Build "libaio-oracle" as root
Download libaio-oracle-0.3.0.tar.gz -
- исходный код для libaio-oracle version 0.3.0 с http://oss.oracle.com/projects/libaio-oracle/files в каталог /tmp

$cd /tmp
$gunzip libaio-oracle-0.3.0.tar.gz
$tar xf libaio-oracle-0.3.0.tar
$cd libaio-oracle-0.3.0
$./configure
$make install
Довавьте к /etc/ld.so.conf
/lib
/usr/lib
/usr/local/lib
Restart Linux.

Выполните контрольный тест: lio_test.

Далее:

$su - oracle
Shutdown oracle
$mv $ORACLE_HOME/rdbms/lib/skgaio.o $ORACLE_HOME/rdbms/lib/skgaio.orig
$cp /tmp/libaio-oracle-0.3.0/libaio-oracle.o $ORACLE_HOME/rdbms/lib/skgaio.o
$make -f ins_rdbms.mk async_on
$make -f ins_rdbms.mk  ioracle

Startup Oracle
Modify screen  SPFILE of OEM concole
    disk_asynch_io=true
    filesystemio_options=asynch
Click "Apply"
Restart instance
Файл skgaio.o, участвующий в перелинковке бинарников Oracle :
  $make -f ins_rdbms.mk async_on
  $make -f ins_rdbms.mk  ioracle
был фактически заменен /tmp/libaio-oracle-0.3.0/libaio-oracle.o

Авторское дополнение:
Удобным и доступным для тестирования Oracle9iR2 AIO является Red Hat Fedora Core 2 (Kernel 2.6.5). Установка Oracle9iR2 в среде FC 2 подробно и совершенно правильно описана в статье: http://www.idevelopment.info/data/Oracle/DBA_tips/Linux/LINUX_8.shtml Установка патча 9.2.0.5 рекомендуется, но не обязательна. Для создания базы данных просто запустите "dbca" как "oracle".

Однако, версия libaio должна быть не 0.3.99, а 0.3.96. Иными словами ,после установки Oracle выполните:

  1. # rpm -q libaio
    Если ничего не установлено, то выполняите п.2 сразу, иначе:- # rpm -e libaio-0.3.99-3.i386.rpm libaio-devel-0.3.99-3.i386.rpm + еще один зависимый "rpm". Название будет показано в сообшении об ошибке (Failed dependencies).
  2. # rpm -ivh libaio-0.3.96-3.i386.rpm libaio-devel-0.3.96-3.i386.rpm
Два последних RPM свободно доступны в Интернете (Google Search).

Ссылки:
1. http://ftp.belnet.be/linux/SuSe/people/mason/utils

[ опубликовано 16/09/2004 ]

Борис Державец (dba477@list.ru) - Активирование асинхронного ввода/вывода в среде Red Hat Linux 9. Линкование Oracle9iR2 для использования AIO.   Версия для печати