В данной публикации речь пойдёт об установке СУБД Oracle под управлением ОС Oracle.
Создание виртуальной машины
Замечание | В качестве платформы для виртуальной машины здесь используется VMWare Server v.2.0. Объём жёсткого диска, имя узла и другие подобные параметры даны для примера |
- Название
- OracleDatabase Операционная система: Linux Версия: Other Linux (64-bit)
- Кол-во процессоров
- 1
- Объём ОЗУ
- 2048 М
- Диск
- 20 ГБ, выделить сразу
- Сеть
- Bridged
- USB
- нет
- Floppy
- нет
- CD/DVD
- загрузочный образ OracleLinux-R6-U4-Server-x86_64-dvd.iso
Установка Oracle Linux Server R6
- Загрузка с установочного диска
- Выбрать “Install or upgrade an existing system”
- Отказаться от проверки установочного диска
- Окно приветствия → [NEXT]
- Язык для инсталляции: English → [NEXT]
- Раскладка клавиатуры: US English → [NEXT]
- Тип хранилища: Basic Storage Device → [NEXT]
- Согласиться с удалением данных на жёстком диске
- Имя узла: oracle
- Настроить сетевой интерфейс (Configure Network) → [NEXT]
- Выбрать местоположение → [NEXT]
- Ввести пароль пользователя root → [NEXT]
- Разбить диск на разделы (Create Custom Layout) → [NEXT]
- Создать разделы жёсткого диска:
- два раздела:
- Standard Partition; /; ext4; 16000MB; Fixed size
- Standard Partition; swap; Fill to maximum allowable size
- [NEXT] → Format → Write changes to disk
- два раздела:
- Загрузчик на /dev/sda → [NEXT]
- Выбор пакетов для установки: Basic Server; Customize later → [NEXT]
- Запустить установку. По завершении – перезагрузить машину
Далее, для удобства, организовать удалённую SSH-сессию из любимого терминала и настроить локальный репозитарий ПО:
[orca@blizzard ~]$ ssh root@10.0.0.131 root@10.0.0.131's password: Last login: Wed Apr 2 18:15:53 2014 [root@oracle ~]# mount /dev/cdrom /mnt <1> [root@oracle ~]# ls /etc/yum.repos.d/ public-yum-ol6.repo [root@oracle ~]# vi /etc/yum.repos.d/public-yum-ol6.repo <2> ... enabled=0 <3> [root@oracle ~]# vi /etc/yum.repos.d/OL64.repo <4> [OL64] name=Oracle Linux 6.4 x86_64 baseurl=file:///mnt gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY gpgcheck=1 enabled=1 [root@oracle ~]# yum clean all <5> [root@oracle ~]# yum repolist <6> |
- Подключить установочный диск
- Изучить перечень репозитариев ПО
- Отключить внешние источники ПО
- Создать локальный репозитарий ПО на основе установочного диска
- Очистить кэш
- Опросить доступные репозитарии
Насладиться процедурой автоматической подготовки сервера для СУБД Oracle:
[root@oracle ~]# yum install oracle-rdbms-server-11gR2-preinstall |
Установить пароль для пользователя oracle, подредактировать файлы /etc/security/limits.d/90-nproc.conf и /etc/hosts:
[root@oracle ~]# passwd oracle [root@oracle ~]# vi /etc/security/limits.d/90-nproc.conf * - nproc 16384 root soft nproc unlimited [root@oracle ~]# vi /etc/hosts ... 10.0.0.131 oracle.localdomain oracle |
Перезагрузить машину.
Установка Oracle Database
Создать директории для установки Oracle Database:
[root@oracle ~]# mkdir -p /usr/oracle/orabin/product/11.2.0/db_1 [root@oracle ~]# mkdir /usr/oracle/install [root@oracle ~]# chown -R oracle:oinstall /usr/oracle/ [root@oracle ~]# chmod -R 775 /usr/oracle/ |
Переписать все установочные файлы СУБД Oracle в /usr/oracle/install.
Завершить удалённую сессию пользователя root, открыть SSH-сессию от пользователя oracle с поддержкой графического режима:
[root@oracle ~]# exit [orca@blizzard ~]$ ssh -Y oracle@10.0.0.131 oracle@10.0.0.131's password: |
Настроить и активировать профиль пользователя oracle:
[oracle@oracle ~]$ vi ~/.bash_profile ... # Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_HOSTNAME=oracle.localdomain; export ORACLE_HOSTNAME ORACLE_UNQNAME=DB11G; export ORACLE_UNQNAME ORACLE_BASE=/usr/oracle/orabin; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME ORACLE_SID=TEST; export ORACLE_SID PATH=/usr/sbin:$PATH; export PATH PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH [oracle@oracle ~]$ . ~/.bash_profile |
Перейти в директорию с установочными файлами, запустить установку:
[oracle@oracle ~]$ cd /usr/oracle/install/database/ [oracle@oracle database]$ ./runInstaller |
Далее, следовать советам программы установки, выбирая необходимые параметры. Одна из главных рекомендаций на этом этапе – выбирать установку только ПО, т.е. без создания базы данных (Install database software only). В остальном – руководствоваться собственными знаниями и предъявляемыми требованиями. Ошибок при установке быть не должно. Когда потребуется – запустить сценарии от пользователя root в отдельной удалённой сессии.
Запустить Oracle Net Configuration Assistant (netca) и настроить службу Oracle TNS Listener:
- Listener configuration → [NEXT]
- Add → [NEXT]
- Listener name: LISTENER → [NEXT]
- Selected Protocols: TCP → [NEXT]
- Use the standard port number of 1521 → [NEXT]
- No → [NEXT] → [NEXT] → [Finish]
Проверить состояние Oracle TNS Listener:
[oracle@oracle database]$ lsnrctl status |
Настроить брандмауэр (от учётной записи пользователя root):
[root@oracle ~]# service iptables status <1> Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited ... [root@oracle ~]# iptables -I INPUT 5 -p tcp --dport 1521 -j ACCEPT <2> [root@oracle ~]# service iptables status <3> ... 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521 6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited ... [root@oracle ~]# service iptables save <4> [root@oracle ~]# service iptables restart <5> [root@oracle ~]# service iptables status <6> ... 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521 6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited ... |
- Отчёт о правилах брандмауэра (интересует цепочка “INPUT”)
- Вставка правила в цепочку “INPUT”. Номер “5” выбран, чтобы правило следовало перед правилом “REJECT”
- Отчёт об изменившихся правилах брандмауэра. Будет происходить приём пакетов “tcp dpt:1521” (Oracle TNS Listener)
- Сохранение правил брандмауэра. Без этого, изменения будут аннулированы после перезапуска брандмауэра
- Перезапуск брандмауэра
- Отчёт о правилах брандмауэра
Проверить подключение к порту 1521 с удалённой системы:
[orca@blizzard ~]$ telnet 10.0.0.131 1521 Trying 10.0.0.131... Connected to 10.0.0.131. Escape character is '^]'. |
Создать тестовую базу данных:
[oracle@oracle ~]$ mkdir /usr/oracle/oradata [oracle@oracle ~]$ dbca |
Для автоматического запуска БД сначала отредактировать файл /etc/oratab, например:
[oracle@oracle ~]$ vi /etc/oratab TEST:/usr/orabin/oracle/product/11.2.0/db_1:Y |
Затем, как пользователь root:
[root@oracle ~]# vi /etc/init.d/dbora #!/bin/sh # chkconfig: 345 99 10 # description: Oracle auto start-stop script. ORACLE_HOME=/usr/orabin/oracle/product/11.2.0/db_1 ORACLE=oracle if [ ! -f $ORACLE_HOME/bin/dbstart ] then echo "Oracle startup: cannot start" exit fi case "$1" in 'start') su $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" & touch /var/lock/subsys/dbora ;; 'stop') su $ORACLE -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" rm -f /var/lock/subsys/dbora ;; esac exit 0 [root@oracle ~]# chmod 750 /etc/init.d/dbora |
Проверить сценарий, активировать его для автозапуска:
[root@oracle ~]# /etc/init.d/dbora stop [root@oracle ~]# /etc/init.d/dbora start [root@oracle ~]# chkconfig --add dbora |
Проверить автозапуск СУБД Oracle перезагрузкой сервера.
Подключиться к базе, выполнить пробный запрос:
[oracle@oracle ~]$ sqlplus Enter user-name: / as sysdba SQL> select INSTANCE_NAME, VERSION, STATUS from V$INSTANCE; INSTANCE_NAME VERSION STATUS ---------------- ----------------- ------------ TEST 11.2.0.4.0 OPEN |
Заключение
Связка “СУБД и ОС от Oracle” произвела хорошее впечатление, главным образом, наличием процедуры автоматической подготовки сервера для СУБД Oracle. Это заметно экономит время и, судя по всему, отвечает принципу KISS, столь уважаемому в прогрессивном сообществе.