Установка Oracle Database 12c в Oracle Linux 7 update 3

HELP-ME-24.COM (Freelance Team), Черноусов Антон

Идея написать статью по установке Oracle Database посещает меня стабильно раз в пол года и потом откладывается в долгий ящик до следующей задачи по настройке окружения.

Oracle 12c Logo

Честно говоря я уже давненько не являюсь полноценным Oracle DBA и многое забыл (хотя тут как на велосипеде ездить, "не забудешь никогда"), но несколько раз в год всплывают задачи поднять Oracle Database для очередного проекта разработчикам и каждый раз начинается одна и та же эпопея с поиском нормальной пошаговой инструкции со всеми нюансами. Сегодня я в спокойной обстановке установлю Oracle DB 12c на ее родной Oracle Linux и напишу на будущее собственный гайд.

Комментарии конечно же принимаются и настоящие гуру могут дополнить этот небольшой гайд, который надеюсь в дальнейшем будет полезен коллегам администраторам.

Установка Oracle Linux 12c

Oracle Linux построен на кодовой базе RedHat с использованием некоторых специальных патчей от Oracle для повышения стабильности работы и производительности продуктов Oracle и естественно раз они так говорят, то и использовать имеет смысл именно этот дистрибутив.

Для начала мы скачиваем Oracle Linux 7 Upadate 3 с сайта https://edelivery.oracle.com/osdc/faces/SearchSoftware, там механизм поиска ПО для загрузки немного дубовый и вам придется использовать поиск для выбора образа для загрузки и естественно вам понадобится учетная запись на сайте Oracle (любого уровня).

В поле Search by введите Oracle Linux.

Загрузка Oracle Linux с официального сайта

В поле Select Platform выберите x86 64bit после чего появится один продукт и потребуется нажать кнопку Continue.

Загрузка Oracle Linux часть вторая

На выбор только один релиз 7 update 3 и пять файлов для загрузки, собственно это то, что нам и надо, и жмем Continue снова.

Oracle Linux установка - выбор релиза дистрибутива

После того как мы согласились с условиями лицензионного соглашения нам наконец-то позволят выбрать файлы для загрузки и мы выбираем только V834394-01.iso - Oracle Linux Release 7 Update 3 for x86 (64 Bit).

Загрузка образа Oracle Linux

По окончании загрузки переименуйте образ из цифро-буквенного обозначения во что-то вменяемое и приступайте к установке. Как я уже говорил, инсталлятор там от RedHat, поэтому если вы уже устанавливали RedHat/Centos, то ничего нового там не увидите. Кстати, я уже рассматривал установку Oracle Linux, но в контексте установки с минимального носителя в статье "Oracle Linux - network install (Установка Oracle Linux с минимального установочного носителя)" и думаю повторяться не имеет особого смысла и я просто записал небольшое видео как устанавливал тестовую виртуальную машину для этого примера.

Обратите внимание, что я выбрал режим установки минимальный без графического окружения ведь графическое окружение нам фактически потребуется только на этапе установки Oracle Database и этот этап мы проведем пробросом графики через SSH на рабочую станцию (реализуем Linux-аналог RemoteAPP).

И еще обратите внимание, что я создал раздел подкачки 4 гб, это принципиальный момент на который обращает внимание инсталлятор Oracle Database вне зависимости от того сколько у вас оперативной памяти.

В минимальную поставку Oracle Linux не входят некоторые привычные инструменты системного администратора и я рекомендую их сразу же установить:

# yum install net-tools
# yum install bind-utils

Ну и конечно не забудьте обновить систему:

# yum update

Для работы Oracle Database требуется провести довольно серьезную работу по тюнингу различных параметров ядра и переменных окружения, так же требуется установить ряд необходимых библиотек. Но, есть метод проще и заключается он в использовании специального пакета преднастроек. Установив данный пакет все требуемые настройки для работы Oracle 12c будут произведены в автоматическом режиме.

Устанавливаем минимальный набор ПО при помощи специального репозитория:

# yum install wget# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-ol7.repo
# yum install oracle-rdbms-server-12cR1-preinstall.x86_64

Установка СУБД Oracle 12c

Следующим этапом нам необходимо скачать дистрибутивные файлы СУБД Oracle 12c и для скачивания как и в случае с Oracle Linux вам потребуется учетная запись на сайте Oracle.

Перейдите по ссылке http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html и обязательно выберите пункт "Accept License Agreement", после чего вы сможете скачать файл "Linux x86-64".

Загрузка Oracle 12c с официального сайта. 

По завершении загрузки вам потребуется скопировать файлы на сервер где будем производить установки и сделать это проще всего при помощи CSP:

$ scp ./linuxx64_12201_database.zip root@172.16.0.83:/tmp/

Распакуем дистрибутив в домашний каталог пользователя oracle и зададим пароль для этого пользователя:

# unzip /tmp/linuxx64_12201_database.zip -d /home/oracle/
# passwd oracle
# chown -R oracle /home/oracle/database/

Так-же нам потребуется создать каталог где будет храниться наша база данных и утилиты для работы с ней. Обычно используется каталог /u01/:

# mkdir /u01/
# chown oracle /u01/

Как я уже говорил выше, графическое окружение нам недоступно и мы будем использовать проброс графического окружения локальной рабочей станции на сервер баз данных. Эту операцию нам потребуется выполнить один раз, а все дальнейшие операции мы будем выполнять в консоли сервера.

$ ssh -X oracle@172.16.0.83

Параметр -X задает перенаправление вывода графики на локальный X-сервер и соответственно запустив инсталлятор мы увидим графическую оболочку установщика так как будто мы запустили приложение локально:

$ cd /home/oracle/database/
$ ./runInstaller

На первом экране матера установки вы можете указать учетные данные аккаунта Oracle (если у вас конечно есть лицензия) или не указывать ничего (если лицензии нет).

Запуск установщика Oracle

Следующим этапом мы выбираем режим "Create and configure a database".

Создание базы данных Oracle 12c

Выбираем режим работы "Server class".

Режим установки базы данных - сервер класс

Нас интересует режим установки без использования кластера. 

Установка без использования кластера

Выбираем типовую установку.

Выбираем режим типовой установки.

Задаем пути, имя базы данных и пароль для пользователя. Обратите внимание, что пути потребуется изменить в соответствии с созданными ранее каталогами.

Создание базы данных и пользователя

Теперь будет произведена проверка соответствия системы требованиям предъявляемым к Oracle Database 12c и если вы все сделали по этой инструкции, то ваша система будет удовлетворять предъявленным требованиям.

Минимальные требования к установке Oracle Database

После нажатия на кнопку Install будет запущена установка OracleDB и это довольно длительный процесс в течение которого можно выпить чая.

Идет установка Oracle Database

Инсталлятор запущен от имени непривилегированного пользователя и вам потребуется вручную выполнить две команды от имени суперпользователя root.

Команды которые необходимо выполнить от имени супер-пользователя.

Выполним предложенные скрипты:

# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh

Выполнение второй команды, дополнительно подскажет какие переменные окружения необходимо будет задать в дальнейшем, а остальные запрашиваемые параметры можно оставить как предложил консольный мастер.

ORACLE_OWNER = oracle
ORACLE_HOME = /u01/app/oracle/product/12.2.0/dbhome_1

По окончании установки база будет запущена и готова к приему сетевых подключений, но тут есть один небольшой нюанс. После перезагрузки вам придется запустить базу вручную и поэтому для чистоты эксперимента мы сейчас перезагрузим созданный сервер баз данных.

# reboot

Подготовка окружения пользователя для работы с базой данных

Фактически для полноценной консольной работы с базой данных Oracle вам потребуется задать несколько переменных окружения и изменить параметры PATH и похожие манипуляции мы уже рассматривали когда настраивали консольную сборку Android-приложений.

Аналогично инструкции по сборке Android-приложений из консоли вам потребуется дополнить файл ~/.bashrc пользователя oracle следующими инструкциями:

export PATH=$PATH:/u01/app/oracle/product/12.2.0/dbhome_1/bin/
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/
export ORACLE_SID=orcl

Этот файл отрабатывает при входе в систему и при следующей авторизации пользователя oracle у него будет полностью настроенное окружение.

Как я уже сказал выше, при перезагрузке сервера база данных и "прослушиватель" будут неактивны и нам потребуется их запустить вручную.

Прослушиватель является основным средством организации взаимодействия с базой oracle и для его запуска выполните в консоли команду (от имени пользователя oracle):

$ lsnrctl start

После запуска прослушиватель будет слушать порт 1521 и интерфейсы описанные в конфигурационном файле /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora и возможно вам потребуется внести в этот файл изменения.

Обратите снимание, что по умолчанию в файле используется имя сервера, что автоматически гарантирует прослушивание локального адреса и всех других адресов прописанных на это имя в файле /etc/hosts и это иногда ставит в тупик системных администраторов при переименовании сервера.

После запуска прослушивателя мы можем подключиться к sql-консоли и запустить базу данных. Для подключения к sql консоли используйте следующую команду (укажите пароль который вы использовали при задании пароля в графическом мастере установки):

$ sqlplus / as sysdba

Обратите внимание, что если вы получаете ошибку:

ORA-12162: TNS:net service name is incorrectly specified

Это означает, что вы не задали переменную ORACLE_SID. 

Теперь нам необходимо в SQL-консоли запустить базу данных и разрешить к ней подключения. Для этого служит команда:

SQL> STARTUP

Собственно теперь с базой данных можно полноценно работать и сообщение о успешном запуске базы данных выглядит следующим образом:

ORACLE instance started.Total System Global Area 729808896 bytes
Fixed Size 8797056 bytes
Variable Size 591398016 bytes
Database Buffers 125829120 bytes
Redo Buffers 3784704 bytes

Автоматический запуск прослушивателя и базы данных Oracle при старте сервера

Логично, что база должна стартовать автоматически при старте сервера и для этого мы можем использовать SystemD и простой bash-скрипт.

Начнем со скрипта который будет запускать прослушиватель и базу данных и расположен он будет в файле /u01/oracle-startup.sh. Обязательно установите его владельцем пользователя oracle и сделайте файл исполняемым:

#!/bin/sh
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export PATH=$PATH:/u01/app/oracle/product/12.2.0/dbhome_1/bin/
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/
export ORACLE_SID=orcl

$ORACLE_HOME/bin/lsnrctl start;
echo "STARTUP" | sqlplus / as sysdba

exit 0

Инит-скрипт SystemD соответственно будет находиться в файле /etc/systemd/system/oracle.service и имеет следующее содержание:

[Unit]
Description=Oracle database server
After=syslog.target network.target

[Service]
Type=oneshot
User=oracle
Group=oinstall
RemainAfterExit=yes
ExecStart=/u01/oracle-startup.sh

[Install]
WantedBy=multi-user.target

И как обычно добавляем в автозапуск при старте сервера и запускаем:

# systemctl enable oracle
# systemctl start oracle

На этом пожалуй закончим с вопросами установки Oracle Database, а более глубокие вопросы администрирования мы рассмотрим в дальнейших статьях.

Оставьте комментарий

Вы должны быть вошедший в чтобы отправить комментарий