Установка БД Oracle 9 на RED HAT Enterprise Linux
Оригинал: http://conrad2001.narod.ru/terek/oracle9204linux.htm
Установка БД 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 я
создал следующие разделы:
1-й диск /sda:
/dev/sda1 /boot 102 Mb
/dev/sda2 / 36993 Mb
/dev/sda3 /swap 1992 Mb
/dev/sda5 /u01 30004 Mb
/dev/sda6 /tmp 910 Mb
2-й диск /sdb:
/dev/sdb1 /u02 70000 Mb
3-й диск /sdc:
/dev/sdc1 /u03 70000 Mb
Выбираем тип инсталляции - Сервер, соглашаемся с предложенными
пакетами по умолчанию и жмем кнопку Next.
Шаг 2.
------
После инсталляции требуется установить следующие программные пакеты:
binutils-2.11
compat-db-4.0.14.5
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
gcc-3.2.3-2
gcc-c++-3.2.3-20
gnome-libs-1.4.1.2.90-34.1
libpng10-1.0.13-8
make-3.79
openmotif-2.2.2-16
openmotif21-2.1.30-8
setarch-1.3-1
Проверка наличия установленных пакетов:
$ rpm -q package_name
Например: rpm -q binutils-2.11
Установка пакета:
$ rpm -Uvh package_name
Например: rpm -Uvh binutils-2.11.i386.rpm
Шаг 3.
------
Создаем группы и пользователей:
- oinstall group (Oracle Inventory group)
- dba group (OSDBA group)
- oracle user (Oracle software owner)
Проверяем существование групп:
# grep oinstall /etc/group
# grep dba /etc/group
и если не существуют, то создаем их:
# /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-й диск)
Создаем рабочие директории:
# mkdir -p /u01/app/oracle
# mkdir /u02/oradata
Назначаем права пользователю oracle и группе oinstall на созданные директории:
# chown -R oracle:oinstall /u01/app/oracle /u02/oradata
Назначаем разрешения:
# chmod -R 775 /u01/app/oracle /u02/oradata
Шаг 4.
------
Конфигурирование параметров ядра (см.рекомендованные параметры):
---------------------------------------------------------------
Parameter Value File
semmsl 100 /proc/sys/kernel/sem
semmns 32000
semopm 100
semmni 100
shmall 2097152 /proc/sys/kernel/shmall
shmmax Half the /proc/sys/kernel/shmmax
size of
physical
memory
(2147483648)
shmmni 4096 /proc/sys/kernel/shmmni
file-max 65536 /proc/sys/fs/file-max
ip_local_port_range 1024 65000 /proc/sys/net/ipv4/ip_local_port_range
---------------------------------------------------------------
Выполните следующие команды для проверки параметров ядра:
---------------------------------------------------------------
Parameter Command
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
umask 022
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/OraHome1
export ORACLE_SID=inventor
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
TEMP=/tmp
TMPDIR=/tmp
export TEMP TMPDIR
Затем выполните следующие команды:
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:
Parameter "orahome" = /u01/app/oracle
Parameter "nodeinfo" = NO_VALUE
Agent Service Failed
Завершаем процесс инсталляции (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
$ su - oracle
$ find $ORACLE_HOME -name "*.mk" | xargs grep -l dbsnmp
/opt/oracle/product/9.2.0/network/lib/ins_oemagent.mk
/opt/oracle/product/9.2.0/network/lib/env_oemagent.mk
$
И наконец производим перелинковку:
$ su - oracle
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install
Выполняем запуск Oracle Intelligent Agent
$ agentctl start
Теперь Oracle Intelligent Agent должен запуститься нормально.
Все! Oracle 9.2.0.4.0 установлен!
Автор: Terek <terek777 at mail.ru>
PS. Копию патчей можно найти по адресу: http://www.opennet.ru/soft/ora_inst/
30 Октябрь 2011 г.
метки: