Monday, June 09, 2008

По установке Oracle 9i на Linux (Centos 4.6)

Решил протестить и задокументить на случай необходимости быстрой установки Oracle 9i на Linux.
Тест провел с установкой Oracle 9i на Centos 4.6.
В соотв-ии с Note:303859.1 (Requirements for Installing Oracle 9iR2 on RHEL 4)
ставим дополнительно те, которых не хватает в системе из списка:
Minimum Software Requirement:
=============================
* Required OS Components
- compat-db-4.1.25-9
- compat-gcc-32-3.2.3-47.3
- compat-gcc-32-c++-3.2.3-47.3
- compat-oracle-rhel4-1.0-3
- compat-libcwait-2.0-1
- compat-libgcc-296-2.96-132.7.2
- compat-libstdc++-296-2.96-132.7.2
- compat-libstdc++-33-3.2.3-47.3
- gnome-libs-1.4.1.2.90-44
- gnome-libs-devel-1.4.1.2.90-44
- libaio-devel-0.3.102-1
- libaio-0.3.102-1
- make-3.80-5
- openmotif21-2.1.30-11
- xorg-x11-deprecated-libs-devel-6.8.1-23.EL
- xorg-x11-deprecated-libs-6.8.1-23.EL
Учитывая зависимости, которые потребовались для этих пакетов, у меня получился след. полный список для доп.установки диска. Можно то, что ниже просто вставить в простой sh-скриптик и запустить.
---
cd /media/cdrom/CentOS/RPMS
rpm -Uvh compat-db-4.1.25-9.i386.rpm \
compat-libgcc-296-2.96-132.7.2.i386.rpm \
compat-libstdc++-296-2.96-132.7.2.i386.rpm \
compat-libstdc++-33-3.2.3-47.3.i386.rpm \
compat-gcc-32-3.2.3-47.3.i386.rpm \
compat-gcc-32-c++-3.2.3-47.3.i386.rpm \
gnome-libs-1.4.1.2.90-44.1.i386.rpm \
glib-devel-1.2.10-15.i386.rpm \
ORBit-devel-0.5.17-14.i386.rpm \
alsa-lib-devel-1.0.6-5.RHEL4.i386.rpm \
audiofile-devel-0.2.6-1.el4.1.i386.rpm \
esound-devel-0.2.35-2.i386.rpm \
freetype-devel-2.1.9-6.el4.i386.rpm \
fontconfig-devel-2.2.3-13.el4.i386.rpm \
xorg-x11-devel-6.8.2-1.EL.33.i386.rpm \
gtk+-devel-1.2.10-36.i386.rpm \
libjpeg-devel-6b-33.i386.rpm \
libtiff-devel-3.6.1-12.i386.rpm \
libungif-devel-4.1.3-1.el4.2.i386.rpm \
imlib-devel-1.9.13-23.i386.rpm \
gnome-libs-devel-1.4.1.2.90-44.1.i386.rpm \
libaio-0.3.105-2.i386.rpm \
libaio-devel-0.3.105-2.i386.rpm \
make-3.80-6.EL4.i386.rpm \
openmotif21-2.1.30-11.RHEL4.6.i386.rpm \
xorg-x11-deprecated-libs-6.8.2-1.EL.33.i386.rpm \
xorg-x11-deprecated-libs-devel-6.8.2-1.EL.33.i386.rpm
---

Конфигурирование Linux для установки Oracle (делаю как при установке Oracle 10)

1) Заведение групп oinstall, dba и пользователя oracle (copy-paste)
# /usr/sbin/groupadd -g 502 oinstall
# /usr/sbin/groupadd -g 503 dba
# /usr/sbin/useradd -m -u 501 -g dba -G oinstall oracle

Проверка id и gid
# id oracle uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)

Установка пароля passwd oracle через:
# passwd oracle

2) Создание директорий по OFA (copy-paste)
# mkdir /oracle
# chown -R oracle:oinstall /oracle
# chmod -R 775 /oracle

3) Конфигурирование параметров ядра (через copy-paste) и shell-лимиты
(делаю как при установке Oracle 10)
Создать и запустить скриптик с таким содержимым
#/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
cp /etc/sysctl.conf /etc/sysctl.conf.ori
cat >> /etc/sysctl.conf << MYEOF
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
MYEOF
/sbin/sysctl -p
cp /etc/security/limits.conf /etc/security/limits.conf.ori
cat >> /etc/security/limits.conf <oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
MYEOF
cp /etc/pam.d/login /etc/pam.d/login.ori
cat >> /etc/pam.d/login <session required /lib/security/pam_limits.so
MYEOF
cp /etc/profile /etc/profile.ori
cat >> /etc/profile <if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
MYEOF
cp /etc/csh.login /etc/csh.login.ori
cat >> /etc/csh.login << MYEOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
MYEOF
cp /etc/profile /etc/profile.ori
cat >> /etc/profile << MYEOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
MYEOF

cp /etc/csh.login /etc/csh.login.ori
cat >> /etc/csh.login << MYEOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
MYEOF
---
В .bash_profile юзера oracle я добавил

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=test9i
export LD_ASSUME_KERNEL=2.4.19
export ORACLE_TERM=xterm
export PATH=$PATH:$ORACLE_HOME/bin

По окончании установки при помощи runInstall в граф.окне получил
Ошибки
/oracle/jre/1.1.8/bin/../lib/i686/native_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM

Решение проблем (как и вообще установка с необходимыми патчами) хорошо описано в пошаговой инструкции от Terek’а
http://conrad2001.narod.ru/terek/oracle9204linux.htm
После накатки патчей и перелинковки пробелмы исчезают.

Также могут быть полезными ссылки
http://www.puschitz.com/InstallingOracle9i.shtml
http://download-east.oracle.com/docs/html/B13670_06/toc.htm
http://blogs.ittoolbox.com/database/david/archives/installing-oracle-9-on-rhel4-19572

2 comments:

c0re (aka ERge) said...

Ты не можешь подсказать, можно ли поставить 9ку на Oracle Linux 6.3 (CentOS 6.3)?

c0re (aka ERge) said...

Меня тоже это интересует.