Установка Oracle 10gR2 + Companion CD
Материал из Gentoo Linux Wiki
Здесь я не буду пытаться охватить все стороны данной темы, так как далеко не являюсь знатоком баз данных, а попробую лишь описать инсталяцию Oracle 10gR2 + Companion CD на Gentoo для поклонников этой операционной системы которые не захотят переходить на что-либо другое ради установки сабжа.
Требуется установленная система с Х-ами. В моём случае это была 2006.1 с KDE-3.5.2. (Cпросите почему KDE? Потому что удобно, можете закидать меня кедами :-)
[править] Подготовка:
# emerge libaio libstdc++ rpm # ln -s /usr/bin/rpm /bin/ # ln -s /usr/lib/libstdc++-v3/libstdc++.so.5 /usr/lib/
| Примечание: Почему-то исталятор оракла пытается найти эти файлы именно там :) |
Проверьте размер swap'а, оракл требует не меньше 1 Гига. Если меньше – не беда, можно добавить:
# dd if=/dev/zero of=/root/tmpswp bs=1k count=500000 # mkswap /root/tmpswp # swapon /root/tmpswp
Установка параметров ядра:
# nano /etc/sysctl.conf net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_max = 262144
# sysctl -p
Добавление групп и пользователя от которого будет запускаться оракл и создание директории для установки:
# groupadd dba # groupadd oinstall # useradd -g oinstall -G dba -d /home/oracle -m oracle # passwd oracle # mkdir -p /opt/oracle # chown -R oracle:oinstall /opt/oracle
Установка переменных окружения:
# nano /home/oracle/.bash_profile export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export PATH=$PATH:$ORACLE_HOME/bin/ export ORACLE_SID=ocla (или какой хотим ID сессии) export ORACLE_HOSTNAME=localhost (или какой у нас хост, но имя должно резольвится) export LOGNAME=oracle
Изменение маскимального количества открытых файлов и запущеных процессов для пользователя oracle:
# nano /etc/security/limits.conf oracle soft nofile 4096 oracle hard nofile 63536 @dba soft nproc 2047 @dba hard nproc 16384 @oinstall soft nproc 2047 @oinstall hard nproc 16384
# nano /etc/profile
if [ "$USER" = "oracle" ]; then
if [ "$SHELL" = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 63536
else
ulimit -u 16384 -n 63536
fi
fi
Распаковываем базу:
# unzip 10201_database_linux32.zip -d /tmp/ # chown -R oracle:oinstall /tmp/database
[править] Начинаем установку.
В Х-ксах запускаем консоль от пользователем под которым заупущены сами Х-ы. В ней:
$ xhost + $ echo $DISPLAY
у меня пишет:
:0.0
но могут быть варианты
$ su - oracle $ export DISPLAY=:0.0 (или то что написало) $ cd /tmp/database $ ./runInstaller -IgnoreSysPrereqs
В принципе я ставил Enterprise Edition и всё по-умолчанию, устанавливаем пароли (или пароль), после проверки параметров системы можно проигнорировать предупреждения о неверной версии операционной системы и недостаточном размере свопа/памяти, на другие предупреждения советую обратить внимание и добиться того чтобы их не выдавало (прервать инсталяцию, исправить и запустить заново). В конце установки выполняем скрипты которые требуется от root'а.
После установки запускается база, isqplus и Enterprise manager, что можно проверить, для этого от пользователя oracle:
$ tnsping ocla (или SID кот. указали при установке базы, по-простому имя БД)
и в браузере, не обязательно от пользователя oracle :-)
http://localhost:5560/isqlplus http://localhost:1158/em
| Примечание: В конце установки инсталятор выдаёт сообщение со списком ссылок, так что номера портов могут и не совпадать с моими :) |
После установки нужно поправить конфиг в котором указывается какие базы запускать и скрипт который их запускает. От root'а:
# nano /etc/oratab ocla:/opt/oracle/product/10.2.0/db_1:Y
От oracle :
$ nano /opt/oracle/product/10.2.0/db_1/bin/dbstart исправить ORACLE_HOME_LISTNER=/opt/oracle/product/10.2.0/db_1
| Примечание: По-умолчанию там стоит судя по-всему имя каталога разработчика кот. писал этот скрипт :) |
Если установка htmldb не требуется переходим к написанию стартовых скриптов, если же всё требуется тогда:
# unzip 10201_companion_linux32.zip -d /tmp/ # chown -R oracle:oinstall /tmp/companion
в консоли от oracle:
$ cd /tmp/companion $ ./runInstaller -IgnoreSysPrereqs
И вот здесь обязательно: htmldb нужно установить в отдельный каталог, для этого меняем Name и Path например так OraHTMLDb10g_home1 /opt/oracle/product/10.2.0/htmldb_1 а когда будет спрашивать пароли и ID базы для установки вводим то с чем поставили базу, конечно для htmldb пароль можно поставить другой но не обязательно :-) Снова понеслась .... :-)
В конце установки скрипт от рута выполняем без замены файлов в /usr/local/bin. После установки htmldb запущена, что можно проверить:
http://localhost:7777/pls/htmldb/htmldb_admin Логин: admin Пароль: тот что ставили при устновке HTMLDB
Для автоматического запуска оракла во время загрузки пишем скрипты: от пользователя oracle
$ mkdir /opt/opracle/bin $ nano /opt/oracle/bin/rundb.sh
| Файл: /opt/oracle/bin/rundb.sh |
#!/bin/bash
DB_HOME=/opt/oracle/product/10.2.0/db_1
HTMLDB_HOME=/opt/oracle/product/10.2.0/htmldb_1 # если устанавливали htmldb
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin/
export ORACLE_SID=ocla
export ORACLE_HOSTNAME=localhost
export LOGNAME=oracle
case "$1" in
'start')
$DB_HOME/bin/dbstart
$DB_HOME/bin/isqlplusctl start # если нужен запуск isqlplus'а
$DB_HOME/bin/emctl start dbconsole # если нужен запуск Enterprise manager'а
$HTMLDB_HOME/opmn/bin/opmnctl startall # если устанавливали htmldb
;;
'stop')
$HTMLDB_HOME/opmn/bin/opmnctl stopall # если устанавливали htmldb
$DB_HOME/bin/emctl stop dbconsole # если нужен запуск Enterprise manager'а
$DB_HOME/bin/isqlplusctl stop # если нужен запуск isqlplus'а
$DB_HOME/bin/dbshut
$DB_HOME/bin/lsnrctl stop
;;
esac
|
От рута:
- nano /etc/init.d/oracle
| Файл: /etc/init.d/oracle |
#!/sbin/runscript
depend() {
use logger dns
need net logger hostname clock
}
DB_ROOT=/opt/oracle
ORACLE_OWNER=oracle
start() {
ebegin "Starting Oracle"
/bin/su $ORACLE_OWNER -c "$DB_ROOT/bin/rundb.sh start"
eend $? "Failed to start Oracle."
}
stop() {
ebegin "Stopping Oracle"
/bin/su $ORACLE_OWNER -c "$DB_ROOT/bin/rundb.sh stop"
eend $? "Failed to stop Oracle."
}
|
# rc-update add oracle default
Если у вас что-то не получилось, дополнительную информацию можно найти здесь:
Огромное спасибо за поддержку Serg (serg[at]sn.dp.ua) и Alien (alien[at]icon3.ru), за стартовый скрипт который я у себя упростил до безобразия, оригинал здесь:
