Автор Marcel Moolenaar <[email protected]>
Ниже описан процесс установки Oracle 8.0.5 и Oracle 8.0.5.1 Enterprise Edition для Linux на систему с FreeBSD.
Удостоверьтесь, что порты 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
Установка этого пакета должна пройти без каких-либо ошибок.
Прежде чем Вы сможете установить Oracle, Вам необходимо обеспечить нужное окружение. Ниже описывается, что конкретно нужно сделать, чтобы успешно запускать Oracle для Linux под FreeBSD. За общими сведениями обратитесь к фирменному руководству по инсталляции Oracle.
Как описывается в руководстве по инсталляции, необходимо установить максимальный размер разделяемой памяти. Не используйте 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
Вам нужно создать специальный Oracle аккаунт, как и любой другой аккаунт. Единственное отличие в том, что Вы должны указать для него командный интерпретатор Linux: /compat/linux/bin/bash. Не забудьте добавить /compat/linux/bin/bash в файл /etc/shells.
Кроме стандартных переменных окружения, таких как 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
Из-за небольшой несовместимости с 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!
Инсталлируя 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.
Скрипт 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
Теперь, если Вы все сделали правильно, то можете использовать Oracle так же, как если бы Вы поставили его на Linux систему.