Установка Oracle Database 18c Express Edition на Oracle Linux

Установка Oracle Database 18c Express Edition на Oracle Linux

В данном посте описывается установка Oracle Database 18c Express Edition (XE) на операционную систему Oracle Linux 7. В примере рассматривается установка на Oracle Linux 7.4. Процесс установки с небольшими оговорками актуален для всех версий ОС Linux на базе RHEL (подробнее – ниже).

Будут рассмотрены следующие шаги:

  1. Подготовка к установке
  2. Установка Oracle Database 18c XE
  3. Подключение к базе данных

1. Подготовка к установке

1.1. Проверяется, соответствует ли используемая операционная система минимальным требованиям для установки и работы Oracle Database 18c XE. Допустимы следующие версии и дистрибутивы Linux на базе RHEL:

  • Oracle Linux 7.5 with the Unbreakable Enterprise Kernel 5
    Oracle Linux 7.2 with the Unbreakable Enterprise Kernel 4
    Oracle Linux 7 with the Unbreakable Enterprise Kernel 3
    Oracle Linux 7 with the Red Hat Compatible kernel: 3.10.0-123.el7.x86_64 or later
  • Red Hat Enterprise Linux 7: 3.10.0-123.el7.x86_64 or later
  • Oracle Linux 6.4 with the Unbreakable Enterprise Kernel 2
    Oracle Linux 6.6 with the Unbreakable Enterprise Kernel 3
    Oracle Linux 6.8 with the Unbreakable Enterprise Kernel 4
    Oracle Linux 6.4 with the Red Hat Compatible kernel: 2.6.32-358.el6.x86_64 or later
  • Red Hat Enterprise Linux 6.4: 2.6.32-358.el6.x86_64 or later
  • SUSE Linux Enterprise Server 12 SP1: 3.12.49-11.1 or later

Для установки требуется минимум 1 Гб оперативной памяти (рекомендуется 2 Гб), минимум 10 Гб дискового пространства для ПО Oracle, 2 Гб дискового пространства для хранения временных файлов и обладание правами администратора.

1.2. Если системные требования соответствуют, то скачивается установочный файл. Oracle Database 18c Express Edition распространяется бесплатно и установочный файл можно скачать с официального сайта Oracle – https://www.oracle.com/database/technologies/xe-downloads.html

Для скачивания на портале Oracle необходимо наличие учетной записи с паролем. При ее отсутствии осуществляется регистрация новой учетной записи.

Пройдя по ссылке, выбирается версия Oracle Database 18c XE для вашей операционной системы (ОС): Oracle Database 18c Express Edition for Linux x64. Запускается скачивание rpm пакета (oracle-database-xe-18c-1.0-1.x86_64.rpm). Время скачивания может быть достаточно большим. Объем пакета около 2,3 Гб.

1.3. Скачивается пакет Oracle Database Preinstall RPM, предназначенный для создания необходимых пользователей, групп в ОС (например, пользователя oracle и группу oinstall), добавления системных параметров и файлов, необходимых для установки и работы базы данных (БД) Oracle. Если используется Oracle Linux, то данный пакет устанавливается командой под учетной записью root. Если используется RedHat, SUSE, либо отсутствует соединение с интернетом на Oracle Linux, то можно скачать сам rpm пакет по ссылке: https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm

После скачивания пакет устанавливается командой:

yum localinstall oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm

или

rpm -ivh oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm

Далее используется вторая команда:

[root@dushanbe tmp]# pwd
/tmp  
[root@dushanbe tmp]# ls -l oracle*
-rw-rw-rw-. 1 rustam rustam 18244 May 30 00:45 oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm  
[root@dushanbe tmp]#
[root@dushanbe tmp]# rpm -ivh oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
warning: oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
error: Failed dependencies:
     ksh is needed by oracle-database-preinstall-18c-1.0-1.el7.x86_64
     libaio-devel is needed by oracle-database-preinstall-18c-1.0-1.el7.x86_64
[root@dushanbe tmp]#

В рассматриваемом случае система требует предварительно установить два зависимых (дополнительных) пакета: ksh и libaio-level. В зависимости от текущих настроек операционной системы возможны требования установки и других зависимых (дополнительных) пакетов. Требуемые пакеты должны быть установлены. Если не настроен доступ к интернету, то пакеты можно найти в папке примонтированного образа (диска или образа, с которого была установлена ОС) – /run/media/<username>. Для этого, например, если используется VirtualBox, то надо в меню «Устройства виртуальной машины» перейти в раздел «Оптические диски» и указать ISO образ вашей операционной системы. Другим вариантом является создание своего репозитория на виртуальной машине и далее можно установить все пакеты из своего репозитория. Ниже устанавливаются зависимые два пакета на операционную систему из примонтированного образа.

[root@dushanbe OL-7.4 Server.x86_64]# cd /run/media/rustam/OL-7.4\ Server.x86_64/
[root@dushanbe OL-7.4 Server.x86_64]# pwd
/run/media/rustam/OL-7.4 Server.x86_64
[root@dushanbe OL-7.4 Server.x86_64]# ls
 addons  images    RELEASE-NOTES-U4-en       RPM-GPG-KEY-oracle
 EFI     isolinux  RELEASE-NOTES-U4-en.html  TRANS.TBL
 EULA    LiveOS    repodata
 GPL     Packages  RPM-GPG-KEY
[root@dushanbe OL-7.4 Server.x86_64]# cd Packages/

В папке Packages определяются необходимые файлы и устанавливаются командой rpm -ivh.

[root@dushanbe Packages]# ls -l ksh*
-rw-rw-r--. 1 rustam rustam 903808 May 26  2017 ksh-20120801-34.el7.x86_64.rpm
[root@dushanbe Packages]# 
[root@dushanbe Packages]# rpm -ivh ksh-20120801-34.el7.x86_64.rpm
warning: ksh-20120801-34.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing…                         ################################# [100%]
Updating / installing…
  1:ksh-20120801-34.el7            ################################# [100%]
[root@dushanbe Packages]# 
[root@dushanbe Packages]# ls -l libaio-dev*
-rw-rw-r--. 1 rustam rustam 12672 Oct  1  2015 libaio-devel-0.3.109-13.el7.i686.rpm
-rw-rw-r--. 1 rustam rustam 12624 Oct  1  2015 libaio-devel-0.3.109-13.el7.x86_64.rpm
[root@dushanbe Packages]# 
[root@dushanbe Packages]# rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
warning: libaio-devel-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing…                         ################################# [100%]
Updating / installing…
  1:libaio-devel-0.3.109-13.el7    ################################# [100%]
[root@dushanbe Packages]# 

Теперь устанавливается preinstall пакет еще раз.

[root@dushanbe Packages]# rpm -ivh /tmp/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
warning: /tmp/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing…                          ################################ [100%]
Updating / installing…
 1:oracle-database-preinstall-18c-1.################################ [100%]
[root@dushanbe Packages]#

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

[root@dushanbe Packages]# rpm -qa | grep oracle-database-preinstall-18c
oracle-database-preinstall-18c-1.0-1.el7.x86_64
[root@dushanbe Packages]# rpm -ql oracle-database-preinstall-18c-1.0-1.el7.x86_64
/etc/rc.d/init.d/oracle-database-preinstall-18c-firstboot
/etc/security/limits.d/oracle-database-preinstall-18c.conf
/etc/sysconfig/oracle-database-preinstall-18c
/etc/sysconfig/oracle-database-preinstall-18c/oracle-database-preinstall-18c-verify
/etc/sysconfig/oracle-database-preinstall-18c/oracle-database-preinstall-18c.param
/usr/bin/oracle-database-preinstall-18c-verify
/var/log/oracle-database-preinstall-18c
/var/log/oracle-database-preinstall-18c/results
[root@dushanbe Packages]# 

2. Установка Oracle Database 18c Express Edition

2.1. Запускается ранее скачанный rpm пакет. Предварительно проверяется доступность более 1 Гб оперативной памяти. Проверить объем оперативной памяти можно командой free -h. Обычно, указав при создании виртуальной машины 1 Гб ОЗУ, на выходе не всегда получаем 1 гигабайт оперативной памяти в ОС. Для этого рекомендуется указывать объем оперативной памяти виртуальной машины с небольшим запасом (например, 1.4 Гб). Иначе возможна, например, следующая ошибка:

[SEVERE] Oracle Database 18c Express Edition requires a minimum of 1GB of physical memory (RAM). This system has 991 MB of RAM and does not meet minimum requirements.

Запускается установка БД:

[root@dushanbe Packages]# ls -l /tmp/oracle-data*
-rw-rw-rw-. 1 rustam rustam      18244 May 30 00:45 /tmp/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
-rw-rw-rw-. 1 rustam rustam 2574155124 May 30 01:10 /tmp/oracle-database-xe-18c-1.0-1.x86_64.rpm
[root@dushanbe Packages]# 
[root@dushanbe Packages]# rpm -ivh /tmp/oracle-database-xe-18c-1.0-1.x86_64.rpm 
warning: /tmp/oracle-database-xe-18c-1.0-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing…                         ################################# [100%]
Updating / installing…
 1:oracle-database-xe-18c-1.0-1    ################################# [100%]
[INFO] Executing post installation scripts…
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database XE, optionally modify the parameters in '/etc/sysconfig/oracle-xe-18c.conf' and then execute '/etc/init.d/oracle-xe-18c configure' as root.
[root@dushanbe Packages]# 

Установка успешно завершена и система выдает сообщение: [INFO] Oracle home installed successfully and ready to be configured.

Лог файлы установок можно найти в файлах /var/log/oracle-database-preinstall-18c и /var/log/oracle-database-xe-18c. В них можно удостовериться, что никаких ошибок не произошло. Изменить некоторые параметры можно в файле /etc/sysconfig/oracle-xe-18c.conf.

[root@dushanbe Packages]# cat /etc/sysconfig/oracle-xe-18c.conf
#This is a configuration file to setup the Oracle Database.
#It is used when running '/etc/init.d/oracle-xe-18c configure'.

# LISTENER PORT used Database listener, Leave empty for automatic port assignment
LISTENER_PORT=

# EM_EXPRESS_PORT Oracle EM Express URL port
EM_EXPRESS_PORT=5500

# Character set of the database
CHARSET=AL32UTF8

# Database file directory
# If not specified, database files are stored under Oracle base/oradata
DBFILE_DEST=

# SKIP Validations, memory, space
SKIP_VALIDATIONS=false
[root@dushanbe Packages]# 

Во избежание ошибок, необходимо удостовериться, что hostname операционной системы прописан в файлах /etc/hosts и /etc/hostname. Иначе получите следующее сообщение при настройке:

[Fatal] [DBT-06103] The port (5500) is already in use express edition 18c

Рекомендуется настроить сетевые параметры и сделать сетевой интерфейс автозапускаемым после перезагрузки операционной системы. В данном посте описывается настройка сети в Oracle Linux.

Для настройки паролей и завершения установки нужно запустить команду /etc/init.d/oracle-xe-18c configure

[root@dushanbe Packages]# /etc/init.d/oracle-xe-18c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database XE.
Enter SYS user password:  
******** 
Enter SYSTEM user password: 
********  
Enter PDBADMIN User Password: 
******** 
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
31% complete
34% complete
38% complete
41% complete
43% complete
Completing Database Creation
47% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
 /opt/oracle/cfgtoollogs/dbca/XE.
Database Information:
Global Database Name:XE
System Identifier(SID):XE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.
Connect to Oracle Database using one of the connect strings:
   Pluggable database: dushanbe.localdomain:1539/XEPDB1
   Multitenant container database: dushanbe.localdomain:1539
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
[root@dushanbe Packages]# 

Установка БД успешно завершена. В конце установки описываются способы подключения к Pluggable и Container Databases, а также к Oracle Enterprise Manager for Oracle Database XE:

Connect to Oracle Database using one of the connect strings:
Pluggable database: dushanbe.localdomain:1539/XEPDB1
Multitenant container database: dushanbe.localdomain:1539
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE

2.2. Теперь под пользователем oracle ОС в папке /home/oracle надо настроить файл .bash_profile, добавив переменные ORACLE_HOME, ORACLE_SID и путь $ORACLE_HOME/bin в разделе PATH. Назначается пароль пользователю oracle и работа в операционной системе производится под этим пользователем.

[root@dushanbe ~]# passwd oracle
Changing password for user oracle.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@dushanbe ~]# 
[root@dushanbe ~]# su - oracle
Last login: Sat May 30 09:53:48 +05 2020 on pts/0
[oracle@dushanbe ~]$

В домашней директории пользователя oracle (/home/oracle) ищется скрытый файл .bash_profile.

[oracle@dushanbe ~]$ ls -al
total 24
drwx------. 6 oracle oinstall 4096 May 30 11:24 .
drwxr-xr-x. 4 root   root       34 May 30 01:05 ..
-rw-------. 1 oracle oinstall   41 May 30 11:24 .bash_history
-rw-r--r--. 1 oracle oinstall   18 May 26  2017 .bash_logout
-rw-r--r--. 1 oracle oinstall  283 May 30 11:18 .bash_profile
-rw-r--r--. 1 oracle oinstall  231 May 26  2017 .bashrc
drwxr-xr-x. 3 oracle oinstall   18 May 30 11:19 .cache
drwxr-xr-x. 3 oracle oinstall   18 May 30 11:19 .config
-rw-r--r--. 1 oracle oinstall  172 May 26  2017 .kshrc
drwxr-xr-x. 4 oracle oinstall   39 May 29 23:58 .mozilla
drwxrwx---. 2 oracle oinstall   40 May 30 01:22 .oracle_jre_usage

Далее файл открывается с помощью nano (или vi) и добавляются переменные ORACLE_HOME, ORACLE_SID и путь $ORACLE_HOME/bin в разделе PATH.

[oracle@dushanbe ~]$ nano .bash_profile
.bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
export ORACLE_SID=XE

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin

export PATH

Изменения сохраняются и осуществляется повторный вход в систему под пользователем oracle.

[root@dushanbe ~]# su - oracle

3. Подключение к БД

После установки необходимо произвести подключение к БД, что позволит проверить работоспособность Oracle Database 18c XE. Для подключения к БД (multitenant container database) под пользователем SYS с помощью SQLPlus, необходимо запустить следующую команду sqlplus sys@XE as sysdba.

[oracle@dushanbe ~]$ sqlplus sys@XE as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sat May 30 11:20:05 2020
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
Enter password: 
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> select status from v$instance;
STATUS
------------
OPEN

SQL> select instance_name from v$instance;
INSTANCE_NAME
------------
XE
SQL>

Выполняется запрос выборки данных из Container Database. Данный запрос показывает имеющиеся pluggable databases (PDB).

SQL> select name from v$pdbs;
NAME
--------------------
PDB$SEED
XEPDB1
SQL>

Перезагрузка операционной системы показывает, что listener и база данных не доступны, так как не настроен автоматический запуск этих служб (см. ниже).

[oracle@dushanbe ~]$ lsnrctl status
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 30-MAY-2020 11:31:19
Copyright (c) 1991, 2018, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dushanbe)(PORT=1539)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
[oracle@dushanbe ~]$ 
[oracle@dushanbe ~]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sat May 30 11:32:02 2020
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
Connected to an idle instance.
SQL>

Чтобы БД (инстанция) и listener запускались автоматически после включения или перезапуска ОС, выполняются следующие две команды под пользователем root:

[root@dushanbe ~]# systemctl start oracle-xe-18c
[root@dushanbe ~]# systemctl enable oracle-xe-18c
oracle-xe-18c.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig oracle-xe-18c on
[root@dushanbe ~]#

Перезагружаем операционную систему. Как видно ниже, listener и база данных стартовали автоматически.

[oracle@dushanbe ~]$ lsnrctl status
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 30-MAY-2020 11:41:32
Copyright (c) 1991, 2018, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dushanbe)(PORT=1539)))
STATUS of the LISTENER
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 18.0.0.0.0 -Production
Start Date                30-MAY-2020 11:39:51
Uptime                    0 days 0 hr. 1 min. 41 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /opt/oracle/product/18c/dbhomeXE/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/dushanbe/listener/alert/log.xml
Listening Endpoints Summary…
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dushanbe)(PORT=1539)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
[oracle@dushanbe ~]$ 
[oracle@dushanbe ~]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sat May 30 11:43:07 2020
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL>

На этом установка и базовые настройки Oracle Database 18c Express Edition на Oracle Linux завершены. Container database и Pluggable database готовы к работе. В последующих постах будут рассмотрены подключение к Pluggable database и работа с ней.

Leave a Reply

Your email address will not be published. Required fields are marked *