Необходимые файлы
Архив с дистрибутивом Oracle 11.2.0.2 (например, database-linux-x86-64-11.2.0.2.zip
).
Создание пользователя oracle
# groupadd -r oinstall && \ groupadd dba && \ useradd -r -g oinstall -G dba -s /bin/bash -d /opt/oracle -m oracle
В случае, если в системе не существует группы nobody, ее необходимо создать:
# groupadd -r nobody
Также нужно добавить в группу dba некоторых пользователей, чтобы у них было право выполнять команды под пользователем oracle:
# usermod -a -G dba nixon && \ usermod -a -G dba llama && \ usermod -a -G dba gordon && \ usermod -a -G dba fly && \ usermod -a -G dba lodkin && \ usermod -a -G dba tischenko
После этого необходимо добавить новый конфигурационный файл sudo /etc/sudoers.d/oracle
и выдать специальные права доступа к нему:
# echo "%dba ALL=(oracle) NOPASSWD: ALL" > /etc/sudoers.d/oracle && \ chmod 0440 /etc/sudoers.d/oracle
Конфигурирование ядра
root@hydra:~# apt-get install bc
Для установки и сохранения необходимых параметров ядра следует воспользоваться следующей командой:
# setparam() { val=`cat /proc/sys/${1//.//}`; if [ "$1" = "kernel.sem" ] || [ "$2" -gt "$val" ]; then val="$2"; fi; echo "$1 = $val" >> /etc/sysctl.d/oracle.conf; } echo -n "Memory per DB [GB]: " && read DB_MEM && \ echo -n "DB count: " && read DB_COUNT && \ setparam "kernel.shmall" `echo "$(free -b|grep Mem|awk '{print$2}')/$(getconf PAGE_SIZE)"|bc` && \ setparam "kernel.shmmax" `echo "$DB_COUNT*$DB_MEM*1024*1024*1024*3/2"|bc` && \ setparam "kernel.shmmni" 4096 && \ setparam "kernel.sem" "250 32000 100 128" && \ setparam "fs.file-max" 6815744 && \ setparam "fs.aio-max-nr" 262144 && \ setparam "net.core.rmem_default" 262144 && \ setparam "net.core.wmem_default" 4194304 && \ setparam "net.core.rmem_max" 1048576 && \ setparam "net.core.wmem_max" 1048576 && \ sysctl -p /etc/sysctl.d/oracle.conf
В ходе выполнения команды выше будет запрошено количество памяти на одну БД (рекомендуемое значение — 4 Гб) и число устанавливаемых БД на сервере (в большинстве случаев — 1).
Установка системных ограничений для пользователя oracle
В файл /etc/security/limits.conf
необходимо добавить следующее содержимое:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 64000
В файл /etc/pam.d/login
необходимо добавить следующую строку (если ее там нет):
session required pam_limits.so
Установка переменных окружения
В зависимости от дистрибутива необходимо произвести следующие действия.
- Gentoo Linux
Необходимо создать файл/etc/env.d/99oracle
со следующим содержимым:ORACLE_BASE="/opt/oracle" ORACLE_HOME="/opt/oracle/product/11.2.0.2" ORACLE_SID="$ORACLE_SID" ORACLE_OWNER="oracle" TNS_ADMIN="/etc/oracle" NLS_LANG="AMERICAN_RUSSIA.AL32UTF8" DISABLE_HUGETLBFS="1" PATH="/opt/oracle/product/11.2.0.2/bin" ROOTPATH="/opt/oracle/product/11.2.0.2/bin" TZ="$TZ"
$TZ
нужно заменить на часовой пояс системы (например,Europe/Moscow
),$ORACLE_SID
— название основной БД (будет создана отдельно и, как правило, совпадает с названием компании).
После этого нужно обновить системные переменные окружения следующей командой:# env-update && \ source /etc/profile
- Debian Linux
Необходимо добавить в файл/etc/environment
следующее содержимое:ORACLE_BASE="/opt/oracle" ORACLE_HOME="/opt/oracle/product/11.2.0.2" ORACLE_SID="$ORACLE_SID" ORACLE_OWNER="oracle" TNS_ADMIN="/etc/oracle" NLS_LANG="AMERICAN_RUSSIA.AL32UTF8" DISABLE_HUGETLBFS="1" TZ="$TZ"
$TZ
нужно заменить на часовой пояс системы (например,Europe/Moscow
),$ORACLE_SID
— название основной БД (будет создана отдельно и, как правило, совпадает с названием компании).
Также необходимо добавить в файл/etc/profile
перед строкойследующее содержимое:export PATH
После этого нужно перевыполнить вход в систему, чтобы переменные окружения обновились.PATH="$PATH:/opt/oracle/product/11.2.0.2/bin"
- Ubuntu Linux
Необходимо изменить в файле/etc/environment
значение переменнойPATH
, добавив в конец ее значения следующее содержимое:Также дополнительно необходимо добавить в этот файл следующее содержимое::/opt/oracle/product/11.2.0.2/bin
ORACLE_BASE="/opt/oracle" ORACLE_HOME="/opt/oracle/product/11.2.0.2" ORACLE_SID="$ORACLE_SID" ORACLE_OWNER="oracle" TNS_ADMIN="/etc/oracle" NLS_LANG="AMERICAN_RUSSIA.AL32UTF8" DISABLE_HUGETLBFS="1" TZ="$TZ"
$TZ
нужно заменить на часовой пояс системы (например,Europe/Moscow
),$ORACLE_SID
— название основной БД (будет создана отдельно и, как правило, совпадает с названием компании).
После этого нужно перевыполнить вход в систему, чтобы переменные окружения обновились. - Red Hat Enterprise Linux
В файл/etc/environment
необходимо добавить следующее содержимое:ORACLE_BASE="/opt/oracle" ORACLE_HOME="/opt/oracle/product/11.2.0.2" ORACLE_SID="$ORACLE_SID" ORACLE_OWNER="oracle" TNS_ADMIN="/etc/oracle" NLS_LANG="AMERICAN_RUSSIA.AL32UTF8" DISABLE_HUGETLBFS="1" PATH="$PATH" TZ="$TZ"
$TZ
нужно заменить на часовой пояс системы (например,Europe/Moscow
),$ORACLE_SID
— название основной БД (будет создана отдельно и, как правило, совпадает с названием компании).
$PATH
нужно заменить результатом выполнения команды:После этого нужно перевыполнить вход в систему, чтобы переменные окружения обновились.# echo $PATH:/opt/oracle/product/11.2.0.2/bin
Инсталляция Oracle
В зависимости от дистрибутива ОС необходимо произвести следующие дополнительные действия.
- Gentoo Linux (x64)
Нужно установить следующие пакеты:После выполнения вышеуказанных команд требуется создать необходимые символические ссылки:# emerge openmotif libXtst libaio rpm && \ emerge app-emulation/emul-linux-x86-baselibs app-emulation/emul-linux-x86-xlibs app-emulation/emul-linux-x86-compat && \ USE="pic" emerge glibc binutils
Также необходимо установить OpenSSH-сервер с USE-флагом "X", если это еще не сделано:# ln -s /usr/bin/rpm /bin/rpm && \ ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
# USE="X" emerge openssh
- Ubuntu Linux (x64), Debian Linux (x64)
Нужно установить следующие пакеты:После выполнения вышеуказанных действий требуется создать необходимые символические ссылки:# apt-get install gcc libaio1 libstdc++5 lesstif2 lesstif2-dev libc6-i386 && \ apt-get install libc6-dev-i386 lib32stdc++6 lib32z1 ia32-libs sysstat && \ apt-get install rlwrap unixodbc unixodbc-dev elfutils rpm make g++
# ln -s /usr/bin/awk /bin/awk && \ ln -s /usr/bin/rpm /bin/rpm && \ ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so && \ ln -s /usr/bin/basename /bin/basename
- CentOs Linux (x64)
Нужно установить следующие пакеты:После выполнения вышеуказанных действий требуется создать символическую ссылку:# yum install setarch-2* make-3* glibc-2* libaio-0* && \ yum install compat-libstdc++-33-3* compat-gcc-34-3* compat-gcc-34-c++-3* gcc-4* libXp-1* && \ yum install openmotif-2* compat-db-4*
# ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
Далее следует извлечь архив с Oracle 11.2.0.2 во временную директорию и выполнить ssh-вход в систему с использованием "X11Forwarding
". Пример команды:
$ ssh -X user@server
Для запуска инсталлятора СУБД необходимо запустить установщик следующей командой (пользователю должно быть дано право выполнять команды от имени пользователя oracle):
$ chmod o+r ~/.Xauthority && \ sudo -u oracle -E ./database/runInstaller -ignoreSysPrereqs
Желательно установить Enterprise Edition и включить поддержку русского языка.
При установке не требуется создание БД (выбрать пункт Install database software only
на шаге выбора варианта установки), поддержку Oracle RAC включать не нужно (выбрать пункт Single instance database installation
на шаге настройки Oracle Grid).
Путь до Oracle Base — /opt/oracle
Путь инсталляции — /opt/oracle/product/11.2.0.2
Путь до Oracle Inventory — /opt/oracle/oraInventory
На замечания установщика о не пройденных проверках готовности системы можно не обращать внимания.
По окончании установки необходимо выполнить следующие 2 файла от пользователя root:
# /opt/oracle/oraInventory/orainstRoot.sh && \ /opt/oracle/product/11.2.0.2/root.sh
Также требуется создать директорию /var/oradata
для пользователя oracle, в которой в дальнейшем будут храниться БД Oracle:
# mkdir /var/oradata && \ chmod 750 /var/oradata && \ chown oracle:oinstall /var/oradata
Создание конфигурационного файла Oracle
Необходимо создать каталог /etc/oracle
, в котором будет лежать конфигурационный файл:
# mkdir /etc/oracle
Далее в этом каталоге требуется создать конфигурационный файл прослушивателя listener.ora
LISTENER = ( ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) SID_LIST_LISTENER = ( SID_LIST = (SID_DESC = (SID_NAME = $ORACLE_SID)(ORACLE_HOME = /opt/oracle/product/11.2.0.2)) )
$ORACLE_SID
нужно заменить на название основной БД (обязательно в нижнем регистре!). После создания нужно убрать права на чтение данного файла для всех пользователей:
# chmod o-r /etc/oracle/listener.ora
После создания файла нужно поменять владельца директории /etc/oracle
:
# chown -R oracle:oinstall /etc/oracle
Настройка автозапуска Oracle
В зависимости от дистрибутива ОС необходимо произвести следующие действия:
- Gentoo Linux
Нужно создать следующие 2 файла в/etc/init.d
с соответствующим содержимым:ora.database
— управление БДora.listener
— управление прослушивателем СУБД# chmod +x /etc/init.d/ora.* && \ rc-update add ora.database default && \ rc-update add ora.listener default
- Ubuntu Linux, Debian Linux
Нужно создать следующие 2 файла в/etc/init.d
с соответствующим содержимым:ora.database
— управление БДora.listener
— управление прослушивателем СУБД# chmod +x /etc/init.d/ora.* && \ update-rc.d ora.database defaults && \ update-rc.d ora.listener defaults
- Red Hat Enterprise Linux
Нужно создать следующие 2 файла в/etc/init.d
с соответствующим содержимым:ora.database
— управление БДora.listener
— управление прослушивателем СУБД# chmod +x /etc/init.d/ora.* && \ update-rc.d ora.database defaults && \ update-rc.d ora.listener defaults
Запуск Oracle
Следует выполнить следующую команду по запуску прослушивателя СУБД:
# /etc/init.d/ora.listener start
Завершающий этап
По завершении всех действий необходимо связаться с ответственным за внедрение сотрудником Latera Software, которому следует сообщить о готовности СУБД Oracle к созданию БД.