From: Terek <terek777 at mail.ru>
Newsgroups: email
Date: Mon, 16 Jun 2004 14:31:37 +0000 (UTC)
Subject: Установка БД Oracle 9 на RED HAT Enterprise Linux
Установка БД Oracle 9.2.0.4.0 на RED HAT Enterprise Linux AS 3 (x86)
(Пошаговая инструкция)
Данный документ основан на фирменных документациях по инсталляции баз
данных Oracle9.2.0.4 и Oracle10g, а также на документации от Werner
Puschitz, расположенной по адресу http://www.puschitz.com/InstallingOracle9i.shtml
Шаг 1.
------
Минимальные требования к оборудованию согласно официальной документации:
Физическая память - 512 MB
Swap space (раздел подкачки) - 1 GB (дисковый раздел, создается при
инсталляции Linux)
Disk Space in /tmp - 400 MB (раздел для временных файлов)
Disk space for software files - 2,5 GB (минимальный объем дискового пространства
для программных файлов)
Disk space for database files - 1,2 GB (минимальный объем дискового пространства
для файлов баз данных)
При инсталляции Linux на сервере с тремя SCSI-дисками по 70 Gb я
создал следующие разделы:
и если не существуют, то создаем их:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
Проверяем существование пользователя oracle:
# id oracle
И если не существует,то создаем его:
# /usr/sbin/useradd -g oinstall -G dba oracle
Эта команда создает пользователя oracle,входящего в:
- oinstall -> первичная группа
- dba -> вторичная группа
Создание требуемых директорий:
- /u01/app/oracle -> основная директория Oracle
- /u02/oradata -> директория баз данных Oracle(необязательно), в моем
случае базы данных будут расположены на 2-м диске
Для основной директорииOracle должно быть не менее 2,5 GB дискового
пространства или 3,7 GB, если Вы не создали директорию баз данных Oracle.
Проверьте размер дисковой памяти командой
# df -k
/u01 - точка монтирования для основной директории Oracle (1-й диск)
/u02 - точка монтирования для директории баз данных Oracle (2-й диск)
semmsl, semmns, /sbin/sysctl -a | grep sem
semopm, and
semmni
shmall, shmmax, /sbin/sysctl -a | grep shm
and shmmni
file-max /sbin/sysctl -a | grep file-max
ip_local_port_range /sbin/sysctl -a | grep ip_local_port_range
---------------------------------------------------------------
Если значения не совпадают с рекомендованными, то используя любой
текстовый редактор создайте или отредактируйте файл /etc/sysctl.conf:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 100
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
Затем перезагрузите систему. Поверьте еще раз параметры ядра командой:
# /sbin/sysctl -p
Шаг 5.
------
Установка Shell Limits для пользователя oracle:
---------------------------------------------------------------
Shell Limit Item in limits.conf Hard Limit
Maximum number of open nofile 65536
file descriptors
Maximum number of processes nproc 16384
available to a single user
---------------------------------------------------------------
1.Добавьте следующие строки в файл etc/security/limits.conf
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
2.Добавьте строку в файл /etc/pam.d/login
session required /lib/security/pam_limits.so
Для командных оболочек Bourne,Bash или Korn добавьте строки в файл /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Шаг 6.
------
Добавьте следующие строки в файл пользовательского окружения
переменных /home/oracle/.bash_profile
su - root
mv /usr/bin/gcc /usr/bin/gcc323
ln -s /usr/bin/gcc296 /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++323 -если g++ не существует,то
пакет gcc-c++-3.2.3-20 не установлен
ln -s /usr/bin/g++296 /usr/bin/g++
Шаг 7.
------
Желательно скопировать дистрибутивы Oracle 9.2.0.4.0 на жесткий диск и
производить установку с жесткого диска.
Я скопировал дистрибутивы на 3-й диск в /u03/distr/ora9i:
/u03/distr/ora9i/Disk1
/u03/distr/ora9i/Disk2
/u03/distr/ora9i/Disk3
Шаг 8.
------
Проделайте следующие действия в окне терминала:
$ su - root
$ xhost +127.0.0.1
$ su - oracle
$ DISPLAY=127.0.0.1:0.0
$ export DISPLAY
$ env | more
Затем выполним обнуление переменных окружения:
$ unset ORACLE_HOME
$ unset TNS_ADMIN
$ unset JAVA_HOME
Внимание!!! Если сейчас запустить инсталлятор командой
/u03/distr/ora9i/Disk1/runInstaller
то получим следующее сообщение об ошибке:
Error occurred during initialization of VM
Unable to load native library:
/tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386/libjava.so:
symbol __libc_wait, version GLIBC_2.0 not defined in file
libc.so.6 with link time reference
Эта ошибка есть баг дистрибутива, и поэтому качаем патч
http://conrad2001.narod.ru/terek/p3006854_9204_LINUX.zip, открываем
другое окно терминала и делаем следующее:
# su - root
# unzip p3006854_9204_LINUX.zip
# cd 3006854
# sh rhel3_pre_install.sh
Программа должна выдать сообщение:
Applying patch...
Patch successfully applied
Закрываем это окно терминала и переключаемся в <<свое>> окно терминала
и выполняем команду:
/u03/distr/ora9i/Disk1/runInstaller
Устанавливаем Oracle.
На завершающем этапе установки, когда Oracle запускает соответствующие
службы, выдается ошибка,связанная с Oracle Intelligent Agent:
Завершаем процесс инсталляции (Next -> Exit)
Если запустить Oracle Intelligent Agent вручную командой
$ agentctl start
как рекомендовано в фирменной документации,то программа выдаст ошибку:
DBSNMP for Linux: Version 9.2.0.4.0 - Production on 07-JAN-2004 19:11:14
Copyright (c) 2003 Oracle Corporation. All rights reserved.
Starting Oracle Intelligent
Agent.../opt/oracle/product/9.2.0/bin/dbsnmpwd: line 156: 1855
Segmentation fault nohup $ORACLE_HOME/bin/dbsnmp $*
>>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/product/9.2.0/bin/dbsnmpwd: line 156: 1868 Segmentation
fault nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/product/9.2.0/bin/dbsnmpwd: line 156: 1880 Segmentation
fault nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/product/9.2.0/bin/dbsnmpwd: line 156: 1892 Segmentation
fault nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
Поэтому качаем патчи http://conrad2001.narod.ru/terek/p2617419_220_GENERIC.zip
и http://conrad2001.narod.ru/terek/p3238244_9204_LINUX.zip и делаем следующее:
# su - oracle
$ cp p2617419_210_GENERIC.zip /tmp (копируем в /tmp)
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin
$ which opatch
/tmp/OPatch/opatch
$ unzip p3238244_9204_LINUX.zip
$ cd 3238244
$ opatch apply
Затем мы должны перелинковать dbsnmp. Вначале проверяем наличие в
системе файлов ins_oemagent.mk и env_oemagent.mk