Ключевые слова:freebsd, oracle, database, install, linux, (найти похожие документы)
From: http://f0kp.iplus.ru/ <[email protected]>
Subject: Запуск Oracle для Linux на FreeBSD
Оригинал: http://f0kp.iplus.ru/proj/fb3.htmlhttp://f0kp.iplus.ru/proj/fb4.html
Как запустить Oracle для Linux на FreeBSD
0. Введение Этот небольшой HOWTO применим к следующим версиям Oracle:
* Oracle 8.0.5.0.0
* Oracle 8.0.5.1.0 Enterprise Edition
Если вашей версии нет в этом списке, то это не обязательно означает,
что данный HOWTO не применим к этой конкретной версии. Это значит, что
я просто не знаю о ней.
1. Установка окружения Linux
Убедитесь, что у вас установлены как linux_base, так и linux_devtools
из коллекции портов. Эти порты добавлены к коллекции после выхода
FreeBSD 3.2. Если вы используете FreeBSD 3.2 или более старую версию,
обновите свою коллекцию портов. Вы также можете захотеть обновить свою
версию FreeBSD.
Если вы хотите запустить intelligent agent, вам также необходимо
установить пакет Red Hat tcl:
tcl-8.0.3-20.i386.rpm
Основная команда для установки пакетов из официального RPM порта это:
rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm
<пакет>
Установка пакета не должна вызвать никаких ошибок.
2. Создание окружения Oracle
Прежде чем вы сможете установить Oracle, вам необходимо установить
соответствующее окружение. Этот документ описывает только то, что
*специально* нужно сделать для запуска Oracle для Linux на FreeBSD, а
не то, что описано в руководстве по установке Oracle.
2.1 Настройка ядра
Как описано в руководстве по установке 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 межпроцессное взаимодействие
2.2 Акаунт Oracle
Создайте акаунт Oracle также как вы создаете любой другой акаунт.
Особенность акаунта Oracle состоит в том, что ему необходимо дать
оболочку Linux. Добавьте /compat/linux/bin/bash к /etc/shells и
установите оболочку для акаунта Oracle к /compat/linux/bin/bash.
2.3 Окружение
Помимо обычных переменных Oracle, таких как 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
3. Установка Oracle
Из-за небольшой несовместимости с эмулятором Linux, вам необходимо
создать директорию с именем .oracle в /var/tmp перед тем, как
запустить установщик. Также сделайте ее открытой на запись для всех
или позвольте пользователю oracle быть ее владельцем. Теперь вы
сможете установить Oracle без каких-либо проблем. Если у вас возникли
проблемы, сперва проверьте свой дистрибутив Oracle и/или конфигурацию!
После установки 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! 3.1. Патченье root.sh
Во время установки Oracle, некоторые действия, которые необходимо
выполнять под root, записаны в сценарий оболочки, названный root.sh.
root.sh записан в директории orainst. Примените следующий патч к
root.sh для того, чтобы он использовал соответствующее местоположение
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 ****
# Это значение для CHOWN по умолчанию
# Оно будет переопределено позже в этом скрипте для тех портов,
# в которых оно условно определено в ss_install.h
! CHOWN=/bin/chown
#
# Определите переменные, которые будут использованы в этом
скрипте
--- 31,37 ----
# Это значение для CHOWN по умолчанию
# Оно будет переопределено позже в этом скрипте для тех портов,
# в которых оно условно определено в ss_install.h
! CHOWN=/usr/sbin/chown
#
# Определите переменные, которые будут использованы в этом
скрипте
Если вы устанавливаете Oracle не с CD, вы можете указать путь к
источнику для root.sh. Он называется rthd.sh и расположен в директории
orainst в исходном дереве.
3.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 ****
#
# Явный путь для проверки, что мы используем правильные команды
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# каждый продукт ДОЛЖЕН предоставлять $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Явный путь для проверки, что мы используем правильные команды
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# каждый продукт ДОЛЖЕН предоставлять $PRODUCT/admin/shrept.lst
4. Запуск Oracle
Когда вы проследуете всем этим инструкциям, вы сможете запустить
Oracle как если бы он был запущен с самой Linux. Хорошо это или плохо,
зависит от того, как вы относитесь к Linux :-) Пока у нас нет родной
FreeBSD версии Oracle, поддерживаемой Oracle, я думаю Oracle для Linux
это хорошая альтернатива.
Работа Oracle Application Server для Linux на FreeBSD
0. Введение
Этот HOWTO касается OAS 3.0 для Linux. В настоящий момент в работе OAS
имеется 2 известные проблемы.
1. Установка окружения Linux
Я предполагаю, что вы уже установили Oracle8, так что у вас есть
сответствующие пакеты. Проблема OAS заключается в том, что он зависит
от поведения Linux ps(1).
Поскольку /proc - не эмулируется под FreeBSD, я портировал procps на
FreeBSD. Этот порт может быть обнаружен http://f0kp.iplus.ru/proj/procps.tar.gz
Имейте в виду, что работа над этим портом еще не полностью завершена,
но достаточна на данный момент. Также имейте в виду, что он не сформатирован для
включения в коллекцию портов FreeBSD. Возможно это произойдет в будущем...
2. Обновление окружения Oracle
В данном параграфе я предполагаю, что вы запустили OAS с акаунта
Oracle. В промышленных средах вы, вероятно, не захотите этого делать,
поскольку каждый, кто имеет доступ к серверу, автоматически получает
привилегии DBA!
Убедитесь, что вы установили следующие переменные окружения:
ORAWEB_HOME=$ORACLE_HOME/ows/3.0; export ORAWEB_HOME
ORAWEB_SITE=scones; export ORAWEB_SITE
ORAWEB_ADMIN=/oracle/admin; export ORAWEB_ADMIN
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/oracle/ows/3.0/lib:/oracle/ows/3.0/omx/lib
export LD_LIBRARY_PATH
PATH=$PATH:$ORAWEB_HOME/bin; export PATH
MANPATH=${MANPATH}:/oracle/ows/3.0/omx/man; export MANPATH
3. Патчи
Существует четыре патча, которые должны быть использованы. Три из них
должны быть применены перед установкой. Последний из них должен быть
применен после установки.
3.1 Предустановочные патчи
Если вы хотите установить их с CD, то вы не сможете применить патчи
напрямую. Сперва вам нужно скопировать содержимое CD на диск. В корне
дерева OAS примените следующие патчи:
*** ows/3.0/install/lstnr.ins~ Tue Sep 29 22:22:53 1998
--- ows/3.0/install/lstnr.ins Sun Dec 27 23:35:01 1998
***************
*** 1069,1074 ****
--- 1069,1075 ----
} /*Конец SYS*/
ows_sol_rel=4;
+ solaris_rel=5;
if (solaris_rel > ows_sol_rel)
Start_Server=false;
--
*** ows/3.0/install/wrb.ins~ Tue Jun 30 02:12:36 199
8
--- ows/3.0/install/wrb.ins Sun Dec 27 23:39:07 199
8
***************
*** 1204,1209 ****
--- 1204,1210 ----
} /*Конец SYS*/
ows_sol_rel=4;
+ solaris_rel=5;
if (solaris_rel > ows_sol_rel)
Start_Server=false;
--
*** ows/3.0/install/ows.ins~ Tue Jun 30 02:12:32 199
8
--- ows/3.0/install/ows.ins Sun Dec 27 23:43:02 199
8
***************
*** 431,436 ****
--- 431,437 ----
} /*Конец SYS*/
ows_sol_rel=4;
+ solaris_rel=5;
if (solaris_rel > ows_sol_rel)
Start_Server=false;
После применения патчей вы можете устанавливать продукт.
3.2 Послеустановочные патчи
После установки вы можете применить следующий патч:
*** owsctl.orig Wed Dec 30 14:55:28 1998
--- owsctl Wed Dec 30 14:56:17 1998
***************
*** 224,233 ****
OPTION="$1" # сохраняем опцию
shift
! if [ "$1" = "WRB" -o "$1" = "wrb" -o "$1" = "-p
" -o "$1" = "-e" -o "$1"
= "NCX" -o "$1" = "ncx" ]
then
$CONTROLPATH/wrbctl $OPTION $@
! elif [ "$1" = "CARTRIDGE" -o "$1" = "cartridge"
-o "$1" = "-p" ]
then
$CONTROLPATH/wrbctl $OPTION $@
else
--- 224,233 ----
OPTION="$1" # сохраняем опцию
shift
! if [ "x$1" = "xWRB" -o "x$1"= "xwrb" -o "x$1" =
"x-p" -o "x$1" = "x-e"
-o "x$1" = "xNCX" -o "x$1" = "xncx" ]
then
$CONTROLPATH/wrbctl $OPTION $@
! elif [ "x$1" = "xCARTRIDGE" -o "x$1" = "xcartri
dge" -o "x$1" = "x-p" ]
then
$CONTROLPATH/wrbctl $OPTION $@
else
Этот патч является дополнительным, так как owsctl работает и без него,
но генерирует некоторые досадные ошибки.
4. Известные проблемы
- Когда listener (oraweb) завершается, он иногда создает дампы памяти.
Причина пока не исследована.
- Oraweb оставляет множество зомби. Это может быть обусловлено
предыдущей проблемой.