Установка 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 и работа с ней.

4 thoughts on “Установка Oracle Database 18c Express Edition на Oracle Linux

  1. Не подскажите, а sqlplus должен изначально стоять? Столкнулся с проблемой: дистрибутив Linux Oracle. Дошёл до подключения к БД и команда не найдена… ОК, скачал oracle instantclient basic… И тут ошибка взаимосвязей… oracle-database-xe-18c конфликтует с oracle-instantclient-basic-21.1.0.0.0-1.x86_64
    в Windows после установки Oracle DBXE18c сразу sqlplus работал….

    1. Добрый день.
      Спасибо за Ваш вопрос.

      Утилита SQLPlus всегда доступна после успешной установки Oracle Database 18c Express Edition. Подключение к БД с помощью SQLPlus под какой учетной записью ОС выполняется (oracle или root)?

    1. Добрый день!
      Спасибо за Ваш вопрос.

      Вам Apache Tomcat нужен для настройки ORDS? Если да, то есть два варианта установки ORDS:
      1. Автономный (standalone) режим.
      2. На сервере приложений (Oracle WebLogic Server, Apache Tomcat).

      В этом посте подробно описан процесс установки и настройки ORDS в автономном режиме (standalone). К сожалению, пока не подготовил пост для второго варианта (на сервере приложений – Apache Tomcat).

Leave a Reply

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