OracleALS40: различия между версиями

Материал из ALT Linux Wiki
(перенос в категорию Admin)
м Admin/OracleALS40» переименована в «OracleALS40»: устранение многоуровневости)

Версия от 18:38, 23 августа 2008

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Установка Oracle DBMS на ALTLinux Server 4.0 VPS

Проверялись версии:

  • Oracle Database 11g Release 1 (11.1.0.6.0)
  • Oracle Database 10g Release 2 (10.2.0.1.0)

Предупреждение! Данный вариант установки СУБД Oracle не может быть рекомендован для рабочих серверов. Цель данного HOWTO выявить все необходимые зависимости ПО от Oracle и возможные «подводные камни» при его установке. Поэтому весь процесс установки сделан в изолированной среде виртуального сервера с минимально возможным набором установленных пакетов.

Исходные данные: установленный и настроенный ALTLinux Server 4.0 со всеми официальными обновлениями. Дистрибутив Oracle Database 10g или 11g доступный для скачивания на Oracle Technology Network.

Рекомендуется использовать пакет oracle-preinstall версии не ниже чем 0.4-alt7

Подготовка виртуального сервера (VPS)

Настройка хост-системы.

Прежде всего, подготовим хост-систему. Отредактируем файл /etc/vz/dists/scripts/functions и укажем в нем правильные значения для переменных $FAKEGATEWAY и $FAKEGATEWAYNET. Значения этих переменных зависят от настроек вашей сети. Установите правильные параметры ядра в файле /etc/sysctl.conf хост-системы (см. /usr/share/doc/oracle-preinstall-<versoin>/README). Отредактируйте файл /etc/sysconfig/oracle установив правильные значения для переменных $ORACLE_BASE и $ORACLE_HOME.

Создание виртуального сервера

Через Web-интерфейс альтератора создаем новый профиль oracle10g-database. В список обязательных пакетов этого профиля добавляем:


  • altlinux-release
  • apt
  • apt-conf-server
  • etcnet
  • libstdc++
  • net-tools
  • openssh-server (опционально)
  • oracle-preinstall
  • rootfiles (опционально)
  • startup
  • twm (выбран как наиболее простой оконный менеджер с минимумом зависимостей)
  • vnc-server
  • xorg-x11-server-common
  • xorg-x11-xfs

Замечу, что профиль для виртуального сервера включает в себя только те пакеты, которые непосредственно используется в процессе установки или работы Oracle. Все остальные пакеты будут установлены по зависимостям вышеперечисленных. На основе получившегося профиля, создайте шаблон с тем же именем oracle10g-database (дабы не путаться). Шаблон представляет из себя полный набор устанавливаемых пакетов, которые остаётся только развернуть в нужном каталоге. Создание шаблона занимает некоторое время и зависит от производительности машины. Вы можете посмотреть текущее состояние шаблона, кликнув на соответствующую ссылку. Когда шаблон будет готов, создайте новый виртуальный сервер с именем oracle и IP-адресом отличающимся от адреса хост-системы. Отредактируйте таблицу системных ресурсов своего виртуального сервера. Ниже приведены минимальные значения некоторых параметров:


  • PRIVVMPAGES="1050000:1145430"
  • SHMPAGES="65536:65536"
  • NUMPROC="192:192"
  • PHYSPAGES="0:2147483647"
  • VMGUARPAGES="6144:2147483647"
  • OOMGUARPAGES="6144:2147483647"
  • TCPSNDBUF="327680:532480"
  • TCPRCVBUF="638976:1048576"
  • NUMFILE="2048:2048"
  • DISKSPACE="2097152:2306868"

Теперь запустите VPS # vzctl start 101

Примечание.

В процессе создания шаблона VPS мы получили пустой каталог пользователя oracle. Это не совсем удобно. Поэтому, чтобы иметь более комфортное окружение, можете скопировать настройки bash из домашнего каталога пользователя root. # cp -a /root/.bash* /root/.i18n oracle/

# chown oracle:oinstall /home/oracle/.bash* /home/oracle/.i18n

Подготовка сервера VNC

При установке и настройке Oracle нам понадобится X-сервер для запуска некоторых графических утилит. В этом случае мы можем воспользоваться либо X-сервером рабочей станции, подключившись к серверу через ssh с ключиком -X, либо установив X-сервер прямо внутри VPS. Удалённый доступ к такому X-серверу можно будет обеспечить с помощью VNC. Опишем второй вариант так как вариант с ssh во-первых, не требует дополнительных действий, а во-вторых, он применим только если у вас есть достаточно надёжное соединение с сервером. Например локальная сеть. Таким образом, мы можем обойтись одним только сервером VNC не устанавливая SSH внутри виртуального сервера, что и было отмечено на этапе подготовки профиля VPS. Внутри VPS получите права пользователя oracle и создайте конфигурацию для VNC # su - oracle $ vncserver You will require a password to access your desktops. Password: Verify: xauth: creating new authority file /home/oracle/.Xauthority New 'X' desktop is database.example.net:1 Creating default startup script /home/oracle/.vnc/xstartup Starting applications specified in /home/oracle/.vnc/xstartup Log file is /home/oracle/.vnc/db.example.org:1.log Конфигурация готова. Остановите VNC-сервер. В дальнейшем мы будем запускать его только как сервис $ vncserver -kill :1 $ exit Отредактируйте файл /etc/sysconfig/vncservers примерно таким образом: VNCSERVERS="1:oracle" Запустите сервисы xfs и vncserver # service xfs start # service vncserver start Включайте эти сервисы только когда вам нужно воспользоваться графическими утилитами Oracle. В штатном режиме эксплуатации эти сервисы не нужны и их можно выключать. Подключитесь к имеющемуся серверу с помощью vncviewer с соответствующим паролем. $ vncviewer db.example.org:1 Connected to RFB server, using protocol version 3.3 Performing standard VNC authentication Password: Authentication successful

Запуск Oracle

Установка базы данных

В процессе установки у вас обязательно возникнет ошибка линковки. Не пугайтесь, к сожалению это нормально. Данная ошибка связана с тем, что Oracle не обеспечивает правильный порядок линковки, что по умолчанию запрещено в дистрибутивах ALT начиная с v4.0. Мы не будем исправлять ошибки Oracle а просто обойдём их, разрешив сборку в неправильной последовательности. Для этого нам необходимо передать линковщику параметр --no-as-needed. Очевидно было бы использовать для этого переменную $LDFLAGS. Однако тут проявляется ещё одна особенность Oracle. Во всех make-файлах переменная $LDFLAGS переопределяется без учёта предыдущего значения. Таким образом, этой переменной воспользоваться не получится. Мне удалось вычислить что переменная $COMPSOBJS нигде не инициализируется. Поэтому нужный нам параметр мы можем передать через эту переменную, что мы и сделаем перед запуском инсталятора. Только в одном месте это не будет работать — в скрипте $ORACLE_HOME/bin/genorasdksh. Вот здесь-то инсталятор и выдаст ошибку. Это место придётся исправлять на ходу. Патч с исправлениями есть в документации к пакету oracle-preinstall. Прежде всего необходимо определить переменные $ORACLE_BASE и $ORACLE_HOME. Возьмём их значения из файла /etc/sysconfig/oracle $ . /etc/sysconfig/oracle $ export ORACLE_BASE ORACLE_HOME Для правильной работы gcc установите переменную $COMPSOBJS: $ export COMPSOBJS="-Wl,--no-as-needed" Запустите инсталятор Oracle и выполняйте установку в соответствии с документацией. После заполнения всех форм, начнётся процесс копирования файлов и затем линковки. В процессе линковки возникнет ошибка приблизительно следующего содержания:

Error in invoking target 'all_no_orcl' of makefile $ORACLE_HOME/rdbms/lib/ins_rdbms.mk. See log file for details.

При появлении этого сообщения поправьте файл $ORACLE_HOME/bin/genorasdksh воспользовавшись редактором или утилитой patch. $ cd $ORACLE_HOME $ patch -p0 < /usr/share/doc/oracle-preinstall-<version>/Oracle10g_ALT40.patch После этого вернитесь в программу установки и нажмите кнопку Retry.

Дальнейшие действия

После установки сервера Oracle необходимо настроить listener с помощью программы netca и потом создать базу данных программой dbca. Последним шагом будет редактирование файла /etc/oratab где в соответствующей строке нужно будет последним параметром указать Y. Это будет означать что данную базу данных нужно запускать при старте системы. Когда это будет сделано, можно стартовать базу данных и listener # service oracle-db start # service oracle-lsnr start При необходимости включите эти сервисы в начальную загрузку системы # chkconfig oracle-db on # chkconfig oracle-lsnr on