Необходимые файлы
Архив с дистрибутивом Oracle 11.2.0.2 (например, database-linux-x86-64-11.2.0.2.zip
)
...
.
...
...
Создание пользователя oracle
Code Block |
---|
# groupadd -r oinstall && \
groupadd dba && \
useradd -r -g oinstall -G dba -s /bin/bash -d /opt/oracle -m oracle
|
В случае, если в системе не существует группы nobody, ее необходимо создать:
Code Block |
---|
# groupadd -r nobody
|
Также нужно добавить в группу dba некоторых пользователей, чтобы у них было право выполнять команды под пользователем oracle:
Code Block |
---|
# 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 tischenko && \ usermod -a -G dba netflash && \ usermod -a -G dba sda && \ usermod -a -G dba matsak && \ usermod -a -G dba chornobay |
После этого необходимо добавить новый конфигурационный файл sudo /etc/sudoers.d/oracle
со следующим содержимым и выдать специальные права доступа к нему:
Code Block |
---|
# echo "%dba ALL=(oracle) NOPASSWD: ALL |
...
" > /etc/sudoers.d/oracle |
...
Code Block |
---|
# && \ chmod 0440 /etc/sudoers.d/oracle |
Конфигурирование ядра
...
Code Block |
---|
root@hydra:~# aptitude install bc
|
Для установки и сохранения необходимых параметров ядра следует воспользоваться следующей командой:
Code Block |
---|
kernel.shmall = $SHMALL
kernel.shmmax = $SHMMAX
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
|
$SHMALL
— количество страниц памяти. Оно равно размеру оперативной памяти, деленной на размер страницы памяти в системе. Получить это значение можно c помощью команды:
Code Block |
---|
echo# 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 |
$SHMMAX
— максимальное значение разделяемой области памяти в байтах. Рекомендуется устанавливать его в размере 1,5*N*SGA
, где N
— количество БД (инстансов) Oracle на сервере, SGA
— размер области SGA-памяти на БД (4 Гб = 4294967296 байт).
Если значения каких-либо параметров кроме SHMALL
в системе больше указанных, изменять их не требуется. Для проверки текущих значений параметров следует использовать вывод команды sysctl -a
. Например, для проверки значения параметра kernel.shmall
команда проверки будет выглядеть следующим образом:
Code Block |
---|
# sysctl -a | grep kernel.shmall
|
Те параметры, чьи текущие значения в системе меньше минимальных необходимо добавить в файл /etc/sysctl.conf
. После изменения файла /etc/sysctl.conf
для применения новых параметров необходимо выполнить следующую команду:
Code Block |
---|
# sysctl -p
|
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" 1048576 && \
setparam "net.core.rmem_default" 262144 && \
setparam "net.core.wmem_default" 262144 && \
setparam "net.core.rmem_max" 4194304 && \
setparam "net.core.wmem_max" 1048576 && \
sysctl -p /etc/sysctl.d/oracle.conf
|
В ходе выполнения команды выше будет запрошено количество памяти на одну БД (рекомендуемое значение — 4 Гб) и число устанавливаемых БД на сервере (в большинстве случаев — 1).
Установка системных ограничений для пользователя oracle
В файл /etc/security/limits.conf
необходимо добавить следующее содержимое:
Code Block |
---|
oracle soft nproc 20474096 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 64000 65536 oracle soft stack 10240 |
В файл /etc/pam.d/login
необходимо добавить следующую строку (если ее там нет):
Code Block |
---|
session required pam_limits.so
|
...
В зависимости от дистрибутива необходимо произвести следующие действия.
- Gentoo
Debian Linux
создать
Необходимодобавить в файл
env.d/99oracle со следующим содержимым/etc/
environment
следующее содержимое:Code Block 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"
Oracle$TZ
нужно заменить на часовой пояс системы (например,Europe/Moscow
),$ORACLE_SID
— название основной БД(будет создана отдельно и, как правило, совпадает с названием компании).
После этого нужно обновить системные переменные окружения следующей командой:
Debian LinuxCode Block # env-update && \ source /etc/profile
НеобходимоТакже необходимо добавить в файл
environment/etc/
profile
перед строкойCode Block export PATH
следующее содержимое:
Code Block ORACLE_BASEPATH="$PATH:/opt/oracle" ORACLE_HOME="//product/11.2.0.2/bin:/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
— название основной БД Oracle (будет создана отдельно и, как правило, совпадает с названием компании)./OPatch"
После этого нужно перевыполнить вход в систему, чтобы переменные окружения обновились.
Ubuntu Linux
Необходимо изменить в файле/etc/environment
значение переменнойPATH
, добавив в конец ее значения следующее содержимое:Code Block :/opt/oracle/product/11.2.0.2/bin:/opt/oracle/product/11.2.0.2/OPatch
Также дополнительно необходимо добавить в этот файл следующее содержимое:
Code Block 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"
Oracle$TZ
нужно заменить на часовой пояс системы (например,Europe/Moscow
),$ORACLE_SID
— название основной БД(будет создана отдельно и, как правило, совпадает с названием компании).
После этого нужно перевыполнить вход в систему, чтобы переменные окружения обновились.Red Hat Enterprise Linux
В файл/etc/environment
необходимо добавить следующее содержимое:Code Block 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"
Oracle$TZ
нужно заменить на часовой пояс системы (например,Europe/Moscow
),$ORACLE_SID
— название основной БД(будет создана отдельно и, как правило, совпадает с названием компании).
$PATH
нужно заменить результатом выполнения команды:Code Block # echo $PATH:/opt/oracle/product/11.2.0.2/bin:/opt/oracle/product/11.2.0.2/OPatch
После этого нужно перевыполнить вход в систему, чтобы переменные окружения обновились.
Инсталляция Oracle
В зависимости от дистрибутива ОС необходимо произвести следующие дополнительные действия.
- Gentoo
Ubuntu Linux (x64), Debian Linux (x64) squeeze
Нужно установить следующие пакеты:Code Block # emergeapt-get openmotifinstall libXtstgcc libaio rpm libaio1 libstdc++5 lesstif2 lesstif2-dev libc6-i386 && \ emerge app-emulation/emul-linux-x86-baselibs app-emulation/emul-linux-x86-xlibs app-emulation/emul-linux-x86-compat apt-get install libc6-dev-i386 lib32stdc++6 lib32z1 ia32-libs sysstat && \ USE="pic" emerge glibc binutils apt-get install rlwrap unixodbc unixodbc-dev elfutils rpm make g++
После выполнения вышеуказанных
команддействий требуется создать необходимые символические ссылки:
Также необходимо установить OpenSSH-сервер с USE-флагом "X", если это еще не сделано:Code Block # ln -s /usr/bin/awk /bin/awk && \ ln -s /usr/bin/arch /bin/arch && \ ln -s /usr/bin/sort /bin/sort && \ ln -s /usr/bin/rpm /bin/rpm && \ ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
Ubuntu Linux (x64),Code Block # USE="X" emerge openssh
&& \ ln -s /usr/bin/basename /bin/basename
Debian Linux (x64) wheeze
Нужно установить следующие пакеты:Code Block # apt-getaptitude install gcc libaio1 libstdc++5 x11-utils libmotif4 libaio1 lesstif2 lesstif2-dev libc6-i386 && \ apt-get install libc6-dev-i386 lib32stdc++6 lib32z1 ia32-libs sysstat lib32stdc++6 lib32z1 sysstat rlwrap unixodbc unixodbc-dev elfutils rpm make g++ gcc
Далее создать ссылки
После выполнения вышеуказанных действий требуется создать необходимые символические ссылки:Code Block # mkdir /usr/lib64 ; ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a && \ ln apt-get install rlwrap unixodbc unixodbc-dev elfutils rpm make g++
Code Block # -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/ && \ ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/ && \ ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/ && \ ln -s /usr/bin/awk /bin/awk && \ ln -s /usr/bin/rpm /bin/rpm && \ ln -s /usr/bin/arch /bin/arch && \ ln -s /usr/bin/sort /bin/sort && \ ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so && \ ln -s /usr/bin/basename /bin/basename
и изменить файл /etc/fstab добавить строку и перезагрузить машину. Размер указать в половину оперативной памяти
Code Block # See "man tmpfs" and https://forums.oracle.com/forums/thread.jspa?messageID=9057494 none /dev/shm tmpfs defaults,size=16G 0 0
CentOs Linux (x64)
Нужно установить следующие пакеты:Code Block # 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*
После выполнения вышеуказанных действий требуется создать символическую ссылку:
Code Block # ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
Далее следует извлечь архив с Oracle 11.2.0.2 во временную директорию и выполнить ssh-вход в систему с использованием "X11Forwarding
". Пример команды:
Code Block |
---|
$ ssh -X user@server
|
Для запуска инсталлятора СУБД необходимо запустить установщик следующей командой (для пользователя должна быть возможность запуска приложений под пользователем пользователю должно быть дано право выполнять команды от имени пользователя oracle):
Code Block |
---|
$ chmod o+r ~/.Xauthority && \
sudo -u oracle -E ./database/runInstaller -ignoreSysPrereqs
|
...
На замечания установщика о не пройденных проверках готовности системы можно не обращать внимания.
Замечание для Debian Wheezy:
при возникновении ошибки с agent nmhs решить ее как описано ниже (Замечание для Debian Wheezy). Подробнее тут: https://community.oracle.com/message/4396359#4396359
при установке может возникнуть ощибка с установкой emagent. Нажимаем Continue.
По окончании установки необходимо выполнить следующие 2 файла от пользователя root:
Code Block |
---|
# /opt/oracle/oraInventory/orainstRoot.sh && \
/opt/oracle/product/11.2.0.2/root.sh
|
Также требуется создать директорию /var/oradata
для пользователя oracle, в которой в дальнейшем будут храниться БД Oracle:
Code Block |
---|
# mkdir install -d -ooracle -goinstall -m750 /var/oradata && \ chmod 750 /var/oradata && \ chown oracle:oinstall /var/oradata |
...
Замечание для Debian Wheezy: после установки необходимо проделать следующие действия:
Code Block |
---|
oracle$ cd $ORACLE_HOME/sysman/lib ;
make -f ins_emagent.mk "agent" |
Будет ошибка, необходимо скопировать последнюю команду gcc и добавить в конец команды
Code Block |
---|
-lnmemso -lcore11 -lnnz11 |
и выполнить последнюю команду заново.
Справочно: http://www.debian-administration.org/article/656/Installing_Oracle11_on_Debian_Squeeze_and_Lenny
Создание конфигурационного файла Oracle
Необходимо создать каталог /etc/oracle
, в котором будут будет лежать конфигурационные файлыконфигурационный файл:
Code Block |
---|
# mkdir /etc/oracle
|
Далее в этом каталоге требуется создать следующие файлы:
...
конфигурационный файл прослушивателя listener.ora
Code Block |
---|
...
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
нужно заменить на название основной БД
...
(обязательно в нижнем регистре!). После создания нужно убрать
...
права на чтение данного файла для всех пользователей:
Code Block |
---|
...
# chmod o-r /etc/oracle/listener.ora
|
...
Code Block |
---|
$ORACLE_SID = (
DESCRIPTION = (
ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = $ORACLE_SID))
)
|
...
После создания файлов После создания файла нужно поменять владельца директории /etc/oracle
и файлов в ней:
Code Block |
---|
# chown -R oracle:oinstall /etc/oracle
|
Настройка автозапуска Oracle
В зависимости от типа дистрибутива ОС необходимо произвести следующие действия.
...
:
- Ubuntu Linux, Debian Linux
Нужно создать следующие 2 файла в/etc/init.d
с соответствующим содержимым:ora.database
— управление БД
Oracle - Ubuntu Linux, Debian Linux
Code Block
bashcollapse
bashtrue
#!/bin/bash # АСР "Гидра". Инициализационный скрипт БД Oracle # Автор: Петров Н. В. # (C) ООО "Латера Софтвер" # www.latera.ru | info@latera.ru ### BEGIN INIT INFO # Provides: ora.database # Required-Start: $network # Required-Stop: $network # Should-Start: network-manager # Should-Stop: network-manager # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Oracle database ### END INIT INFO # Коды возврата скрипта RET_OK="0" RET_BAD_USAGE="1" RET_FAILED_RUN="2" # Подключение инит-функций . /lib/lsb/init-functions # Запись в вывод ошибок function echo_err { echo $@ >&2 } # Инициализация окружения function init_environment { . /etc/environment export ORACLE_HOME export ORACLE_OWNER } # Выполнение команды function run_cmd { # Выполнение команды eval $@ # Если выполнение было неудачным if [ $? != "0" ]; then # Завершение выполнения скрипта log_end_msg $RET_FAILED_RUN exit $RET_FAILED_RUN fi } # Действие на основе первого параметра вызова скрипта case "$1" in # Запуск start) log_daemon_msg "Starting Oracle Database" # Инициализация окружения init_environment # Запуск БД run_cmd "su $ORACLE_OWNER -c \"$ORACLE_HOME/bin/dbstart $ORACLE_HOME\"" # Выход c успехом log_end_msg $RET_OK exit $RET_OK ;; # Остановка stop) log_daemon_msg "Stopping Oracle Database" # Инициализация окружения init_environment # Остановка БД run_cmd "su $ORACLE_OWNER -c \"$ORACLE_HOME/bin/dbshut $ORACLE_HOME\"" # Выход c успехом log_end_msg $RET_OK exit $RET_OK ;; # Перезапуск restart) # Остановка $0 stop # Запуск $0 start # Выход с успехом exit $RET_OK ;; # Любое другое действие *) # Вывод сообщения с вариантами использования echo_err "Usage: $0 (start|stop|restart)" # Выход с неудачей exit $RET_BAD_USAGE ;; esac
ora.listener
— управление прослушивателем СУБД
Oracle Code Block
bashcollapse
bashtrue
#!/bin/bash # АСР "Гидра". Инициализационный скрипт прослушивателя СУБД Oracle # Автор: Петров Н. В. # (C) ООО "Латера Софтвер" # www.latera.ru | info@latera.ru ### BEGIN INIT INFO # Provides: ora.listener # Required-Start: $network # Required-Stop: $network # Should-Start: network-manager ora.database # Should-Stop: network-manager ora.database # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Oracle listener ### END INIT INFO # Коды возврата скрипта RET_OK="0" RET_BAD_USAGE="1" RET_FAILED_RUN="2" # Подключение инит-функций . /lib/lsb/init-functions # Запись в вывод ошибок function echo_err { echo $@ >&2 } # Инициализация окружения function init_environment { . /etc/environment export ORACLE_HOME export ORACLE_OWNER } # Выполнение команды function run_cmd { # Выполнение команды eval $@ # Если выполнение было неудачным if [ $? != "0" ]; then # Завершение выполнения скрипта log_end_msg $RET_FAILED_RUN exit $RET_FAILED_RUN fi } # Действие на основе первого параметра вызова скрипта case "$1" in # Запуск start) log_daemon_msg "Starting Oracle listener" # Инициализация окружения init_environment # Запуск прослушивателя run_cmd "su $ORACLE_OWNER -c \"$ORACLE_HOME/bin/lsnrctl start LISTENER\"" # Выход c успехом log_end_msg $RET_OK exit $RET_OK ;; # Остановка stop) log_daemon_msg "Stopping Oracle listener" # Инициализация окружения init_environment # Остановка прослушивателя run_cmd "su $ORACLE_OWNER -c \"$ORACLE_HOME/bin/lsnrctl stop LISTENER\"" # Выход c успехом log_end_msg $RET_OK exit $RET_OK ;; # Перезапуск restart) # Остановка $0 stop # Запуск $0 start # Выход с успехом exit $RET_OK ;; # Любое другое действие *) # Вывод сообщения с вариантами использования echo_err "Usage: $0 (start|stop|restart)" # Выход с неудачей exit $RET_BAD_USAGE ;; esac
После создания файлов необходимо выдать разрешение на их запуск и
произвести установку автозапускадобавить в автозапуск:
Code Block
# 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
— управление БД
Oracle Code Block
bashcollapse
bashtrue
#!/bin/bash # АСР "Гидра". Инициализационный скрипт БД Oracle # Автор: Петров Н. В. # (C) ООО "Латера Софтвер" # www.latera.ru | info@latera.ru ### BEGIN INIT INFO# Provides: ora.database # Required-Start: $network # Required-Stop: $network # Should-Start: network-manager # Should-Stop: network-manager # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Oracle database ### END INIT INFO # Коды возврата скрипта RET_OK="0" RET_BAD_USAGE="1" RET_FAILED_RUN="2" # Запись в вывод ошибок function echo_err { echo $@ >&2 } # Инициализация окружения function init_environment { . /etc/environment export ORACLE_HOME export ORACLE_OWNER } # Выполнение команды function run_cmd { # Выполнение команды eval $@ # Если выполнение было неудачным if [ $? != "0" ]; then # Завершение выполнения скрипта
log#log_end_msg $RET_FAILED_RUN exit $RET_FAILED_RUN fi } # Действие на основе первого параметра вызова скрипта case "$1" in # Запуск start) echo "Starting Oracle Database..." # Инициализация окружения init_environment # Запуск БД run_cmd "su $ORACLE_OWNER -c \"$ORACLE_HOME/bin/dbstart $ORACLE_HOME\"" # Выход c успехом exit $RET_OK ;; # Остановка stop) echo "Stopping Oracle Database..." # Инициализация окружения init_environment # Остановка БД run_cmd "su $ORACLE_OWNER -c \"$ORACLE_HOME/bin/dbshut $ORACLE_HOME\"" # Выход c успехом exit $RET_OK ;; # Перезапуск restart) # Остановка $0 stop # Запуск $0 start # Выход с успехом exit $RET_OK ;; # Любое другое действие *) # Вывод сообщения с вариантами использования echo_err "Usage: $0 (start|stop|restart)" # Выход с неудачей exit $RET_BAD_USAGE ;; esac
ora.listener
— управление прослушивателем СУБД
Oracle Code Block
bashcollapse
bashtrue
#!/bin/bash # АСР "Гидра". Инициализационный скрипт прослушивателя СУБД Oracle # Автор: Петров Н. В. # (C) ООО "Латера Софтвер" # www.latera.ru | info@latera.ru ### BEGIN INIT INFO # Provides: ora.listener # Required-Start: $network # Required-Stop: $network # Should-Start: network-manager ora.database # Should-Stop: network-manager ora.database # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Oracle listener ### END INIT INFO # Коды возврата скрипта RET_OK="0" RET_BAD_USAGE="1" RET_FAILED_RUN="2" # Запись в вывод ошибок function echo_err { echo $@ >&2 } # Инициализация окружения function init_environment { . /etc/environment export ORACLE_HOME export ORACLE_OWNER } # Выполнение команды function run_cmd { # Выполнение команды eval $@ # Если выполнение было неудачным if [ $? != "0" ]; then # Завершение выполнения скрипта # log_end_msg $RET_FAILED_RUN exit $RET_FAILED_RUN fi } # Действие на основе первого параметра вызова скрипта case "$1" in # Запуск start) echo "Starting Oracle listener..." # Инициализация окружения init_environment # Запуск прослушивателя run_cmd "su $ORACLE_OWNER -c \"$ORACLE_HOME/bin/lsnrctl start LISTENER\"" # Выход c успехом exit $RET_OK ;; # Остановка stop) echo "Stopping Oracle listener..." # Инициализация окружения init_environment # Остановка прослушивателя run_cmd "su $ORACLE_OWNER -c \"$ORACLE_HOME/bin/lsnrctl stop LISTENER\"" # Выход c успехом exit $RET_OK ;; # Перезапуск restart) # Остановка $0 stop # Запуск $0 start # Выход с успехом exit $RET_OK ;; # Любое другое действие *) # Вывод сообщения с вариантами использования echo_err "Usage: $0 (start|stop|restart)" # Выход с неудачей exit $RET_BAD_USAGE ;; esac
После создания файлов необходимо выдать разрешение на их запуск и
произвести установку автозапускадобавить в автозапуск:
Code Block
~]# chmod +x /etc/init.d/ora.* && \ chkconfig
update-rc.d--add ora.database
defaults && \ chkconfig
update-rc.d--add ora.listener
defaults
ora.database
— управление БД Oracle
#!/sbin/runscript
# АСР "Гидра". Инициализационный скрипт БД Oracle
# Автор: Петров Н. В.
# (C) ООО "Латера Софтвер"
# www.latera.ru | info@latera.ru
# Зависимости
depend() {
need net
}
# Инициализация окружения
function init_environment {
source /etc/profile
}
# Запуск
start() {
ebegin "Starting Oracle Database"
# Инициализация окружения
init_environment
# Запуск БД
su $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
# Выход с результатом запуска
eend $?
}
# Остановка
stop() {
ebegin "Stopping Oracle Database"
# Инициализация окружения
init_environment
# Остановка БД
su $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
# Выход с результатом остановки
eend $?
}
ora.listener
— управление прослушивателем СУБД Oracle
#!/sbin/runscript
# АСР "Гидра". Инициализационный скрипт прослушивателя СУБД Oracle
# Автор: Петров Н. В.
# (C) ООО "Латера Софтвер"
# www.latera.ru | info@latera.ru
# Зависимости
depend() {
need net
}
# Инициализация окружения
function init_environment {
source /etc/profile
}
# Запуск
start() {
ebegin "Starting Oracle Database"
# Инициализация окружения
init_environment
# Запуск прослушивателя
su $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start LISTENER"
# Выход с результатом запуска
eend $?
}
# Остановка
stop() {
ebegin "Stopping Oracle Database"
# Инициализация окружения
init_environment
# Остановка прослушивателя
su $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop LISTENER"
# Выход с результатом остановки
eend $?
}
Code Block |
---|
# chmod +x /etc/init.d/ora.* && \
rc-update add ora.database default && \
rc-update add ora.listener default
|
Запуск Oracle
Следует выполнить следующую команду по запуску прослушивателя СУБД
...
:
Code Block |
---|
# /etc/init.d/ora.listener start
|
Установка Oracle Instant Client
Библиотеки Oracle Instant Client необходимы для обеспечения связи приложений с СУБД Oracle. Архивы с Oracle Instant Client 11.2.0.2, Oracle Instant Client 11.2.0.2 SDK (используется при установке модулей Oracle для интерпретаторов) и Oracle Instant Client 11.2.0.2 SQL*Plus необходимо распаковать в директорию /opt/oracle
, например:
Code Block |
---|
# unzip instantclient-basic-linux-x86-64-11.2.0.2.0.zip -d /opt/oracle && \
unzip instantclient-sdk-linux-x86-64-11.2.0.2.0.zip -d /opt/oracle && \
unzip instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip -d /opt/oracle
|
После разархивирования необходимо создать символические ссылки для libclntsh.so.11.1
и libocci.so.11.1
:
Code Block |
---|
# cd /opt/oracle/instantclient_11_2 && \
ln -s libclntsh.so.11.1 libclntsh.so && \
ln -s libocci.so.11.1 libocci.so
|
Далее нужно изменить владельца файлов в директории /opt/oracle/instantclient_11_2
на пользователя oracle:
Code Block |
---|
# chown -R oracle:oinstall /opt/oracle/instantclient_11_2
|
В завершение необходимо добавить файл с путем к Oracle Instant Client в /etc/ld.so.conf.d
и переконфигурировать привязки к динамическим библиотекам:
Code Block |
---|
# echo /opt/oracle/instantclient_11_2 > /etc/ld.so.conf.d/oracle.conf && \
ldconfig
|
Завершающий этап
По завершении всех действий необходимо связаться с ответственным за внедрение сотрудником Latera Software, которому следует сообщить о готовности СУБД Oracle к созданию БД.