22.4 Установка Oracle во FreeBSD


Автор Marcel Moolenaar <marcel@cup.hp.com>
22.4.1 Введение

Ниже описан процесс установки Oracle 8.0.5 и Oracle 8.0.5.1 Enterprise Edition для Linux на систему с FreeBSD.
22.4.2 Настройка Linux окружения

Удостоверьтесь, что порты linux_base и linux_devtools установлены на Вашей системе. Они появились в коллекции портов после выхода FreeBSD 3.2. Если Вы используете FreeBSD 3.2 или более раннюю, обновите коллекцию портов. Нелишним будет и апгрейд до более поздней версии FreeBSD. Если у Вас возникнут трудности с linux_base-6.1 или linux_devtools-6.1, воспользуйтесь версией 5.2 этих пакетов.

Если Вы хотите использовать intelligent agent, Вам также понадобится TCL пакет от Red Hat: tcl-8.0.3-20.i386.rpm. Для этого воспользуйтесь следующей командой:
# rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package

Установка этого пакета должна пройти без каких-либо ошибок.


22.4.3 Настройка окружения Oracle

Прежде чем Вы сможете установить Oracle, Вам необходимо обеспечить нужное окружение. Ниже описывается, что конкретно нужно сделать, чтобы успешно запускать Oracle для Linux под FreeBSD. За общими сведениями обратитесь к фирменному руководству по инсталляции Oracle.


22.4.3.1 Настройка ядра

Как описывается в руководстве по инсталляции, необходимо установить максимальный размер разделяемой памяти. Не используйте SHMMAX под FreeBSD. SHMMAX высчитывается, исходя из SHMMAXPGS и PGSIZE. Следовательно, нужно задавать SHMMAXPGS. За информацией о прочих опциях обратитесь к фирменному руководству:
options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61

Установите эти опции в зависимости от того, как и для чего Вы будете использовать Oracle.

Не забудьте добавить следующие строки в файл конфигурации ядра:
options SYSVSHM # разделяемая память SysV
options SYSVSEM # семафоры SysV
options SYSVMSG # межпроцессное взаимодействие SysV


22.4.3.2 Oracle аккаунт

Вам нужно создать специальный Oracle аккаунт, как и любой другой аккаунт. Единственное отличие в том, что Вы должны указать для него командный интерпретатор Linux: /compat/linux/bin/bash. Не забудьте добавить /compat/linux/bin/bash в файл /etc/shells.


22.4.3.3 Переменные окружения

Кроме стандартных переменных окружения, таких как ORACLE_HOME и ORACLE_SID, Вам нужно будет установить следующие дополнительные переменные:

Переменная Значение
LD_LIBRARY_PATH $ORACLE_HOME/lib
CLASSPATH $ORACLE_HOME/jdbc/lib/classes111.zip
PATH /compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin

Желательно устанавливать их в файле .profile. Вот реальный пример:
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin
export PATH


22.4.4 Инсталляция Oracle

Из-за небольшой несовместимости с Linux эмулятором, Вам нужно будет создать подкаталог .oracle в директории /var/tmp прежде чем можно будет начать инсталляцию. Либо сделайте ее владельцем пользователя oracle, либо поставьте права на запись для всех. Если Вы все сделали правильно, то инсталляция должна пройти без проблем. Если какие-либо трудности все же возникли, проверьте еще раз все конфигурационные файлы и целостность дистрибутива. После окончания установки, приложите патчи (смотрите следующие две секции).

Одна из часто возникающих проблем -- неправильно установленный TCP адаптер. В результате, невозможно запустить TCP сервисы. Вот решение проблемы:
# cd $ORACLE_HOME/network/lib
# make -f ins_network.mk ntcontab.o
# cd $ORACLE_HOME/lib
# ar r libnetwork.a ntcontab.o
# cd $ORACLE_HOME/network/lib
# make -f ins_network.mk install

Не забудьте повторно запустить root.sh!


22.4.4.1 Модификация root.sh

Инсталлируя Oracle, необходимо выполнить некоторые действия (имея при этом привилегии суперпользователя). Фактически это сводится к выполнению скрипта root.sh, который находится в директории orainst. Перед запуском, приложите к нему следующий патч (исправляет местонахождение утилиты chown), либо запускайте его в командном интерпретаторе Linux.
*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this script

Если Вы инсталлируете Oracle не с компакт диска, то можно модифицировать файл rthd.sh, который находится в директории orainst.


22.4.4.2 Модификация genclntsh

Скрипт genclntsh используется для того, чтобы создать единую разделяемую клиентскую библиотеку. Приложите следующий патч, чтобы закомментировать определение переменной PATH:
*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
22.4.5 Запуск и использование Oracle

Теперь, если Вы все сделали правильно, то можете использовать Oracle так же, как если бы Вы поставили его на Linux систему.

Обновлено: 12.03.2015