Моят личен и професионален живот

2018-10-21

Първи впечатления от Oracle Database XE 18c опитвайки се да я инсталирам на Fedora 28 и Oracle Linux 7

Oracle пусна Oracle Database Express Edition (или по-известна като XE) на 19 Октомври 2018. Тази дата също така се пада и рождения ми ден, така че какъв страхотен подарък! Нека да вземем да отворим подаръка и да го пробваме!
Чакането за Oracle XE 18c беше дълго като предишната версия (основана на 11g Release 2) се появи преди 7 години (на 24 Септември 2011) а версия основана на Oracle 12c никога не се появи. Използвах XE на Fedora откакто 11g се появи през 2011, но с новите версии на Fedora това стана невъзможно. Базата се държеше странно и не можеше да се ползва след рестарт, но така и не намерих време да разследвам в дълбочина тези проблеми. Така обмислях да пробвам Oracle Linux вместо това (виж Which OS is “the best” for Oracle? за експертно мнение).

Fedora 28

Понеже нямам достатъчно място във виртуалната машина изтеглих RPM-ите на сървър и пробвах да ги инсталирам от NFS дял следвайки инструкциите в Quick Start:

[root@fedora ~]# yum -y localinstall /mnt/vm/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
Last metadata expiration check: 2:01:29 ago on Sun 21 Oct 2018 11:07:06 AM EEST.
Error:
 Problem: conflicting requests
  - nothing provides compat-libcap1 needed by oracle-database-preinstall-18c-1.0-1.el7.x86_64



Хмм... Просто липсва необходимия пакет compat-libcap1, но защо не бива инсталиран автоматично?

[root@fedora ~]# yum install compat-libcap1
Last metadata expiration check: 1:24:06 ago on Sun 21 Oct 2018 11:07:06 AM EEST.
No match for argument: compat-libcap1
Error: Unable to find a match


Това е странно, но Fedora не предоставя този пакет. Открих го в CentOS хранилището (праяка връзка за изтегляне) и след инсталиране на compat-libcap1 preinstall RPM-а се инсталира успешно. Обаче, инсталацията на базата пропадна:

[root@fedora ~]# yum -y localinstall /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm
Last metadata expiration check: 2:16:29 ago on Sun 21 Oct 2018 11:07:06 AM EEST.
Dependencies resolved.
==========================================================
 Package                Arch   Version Repository    Size
==========================================================
Installing:
 oracle-database-xe-18c x86_64 1.0-1   @commandline 2.4 G

Transaction Summary
==========================================================
Install  1 Package

Total size: 2.4 G
Installed size: 5.2 G
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Error: Transaction check error:
  package oracle-database-xe-18c-1.0-1.x86_64 does not verify: no digest
  installing package oracle-database-xe-18c-1.0-1.x86_64 needs 2472MB on the / filesystem


Error Summary
-------------
Disk Requirements:
   At least 2472MB more space needed on the / filesystem.


Явно изискванията към дисковото пространство са се повишили, защото преди инсталирах XE 11gR2 на същата виртуална машина. Трябваше да уголемя диска и разширя дяла. Обаче, проблема Error: Transaction check error: package oracle-database-xe-18c-1.0-1.x86_64 does not verify: no digest остана, затова писах във форума (виж нишка 14969247).

За да се справя с това използвах следната команда. Но за да проработи трябваше да инсталирам също така libnsl (т.е. dnf install libnsl) и увелича още веднъж дисковото пространство. Явно инсталацията на RPM-а изисква около 5,2 ГБ.

[root@fedora ~]# rpm -i --nodigest /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm
warning: /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
[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.


Така идва време за конфигурация. За създаването на базата са необходими още 4,5 ГБ дисково пространство.

[root@fedora ~]# /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.
[WARNING] [DBT-11209] Current available memory is less than the required available memory (796MB) for creating the database.
   CAUSE: Following nodes do not have required available memory :
 Node:fedora            Available memory:471.8672MB (483192.0KB)

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: fedora:1539/XEPDB1
     Multitenant container database: fedora:1539
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE


Забележка: Ако получите  Listener configuration failed. Check log '/opt/oracle/cfgtoollogs/netca/netca_configure_out.log' и в журналния файла присъства линията No valid IP Address returned for the host fedora просто задайте пълното име на машината заедно с домейна в /etc/hostname пуснете конфигурацията отново.

Същата процедура е приложима към Fedora 29.

Oracle Linux Server 7.5

Инсталацията на preinstall RPM-а става гладко:


[root@oracle ~]# yum -y localinstall /mnt/vm/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
Loaded plugins: ulninfo
Examining /mnt/vm/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm: oracle-database-preinstall-18c-1.0-1.el7.x86_64
Marking /mnt/vm/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-preinstall-18c.x86_64 0:1.0-1.el6 will be installed
...
--> Processing Dependency: compat-libcap1 for package: oracle-database-preinstall-18c-1.0-1.el6.x86_64
...
Dependencies Resolved

====================================================================
 Package                         Arch   Version     Repository Size
====================================================================
Installing:                                                  
 oracle-database-preinstall-18c  x86_64 1.0-1.el7   /oracle... 55 k
Installing for dependencies:                                 
...                                                          
 compat-libcap1                  x86_64 1.10-7.el7  ol7_latest 17 k
...
Install  1 Package (+37 Dependent packages)
...
Installed:
  oracle-database-preinstall-18c.x86_64 0:1.0-1.el7

Dependency Installed:
compat-libcap1.x86_64 0:1.10-7.el7
...
Complete!


Зависимостта от compat-libcap1 беше лесно разрешена както и 36 други зависимости, защото инсталацията ми на Oracle Linux е нова и нямам много инсталирани пакети все още. Инсталацията на RPM-а с базата също стана без проблеми:

[root@oracle ~]# yum -y localinstall /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm
Loaded plugins: ulninfo
Examining /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm: oracle-database-xe-18c-1.0-1.x86_64
Marking /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-xe-18c.x86_64 0:1.0-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================
 Package                 Arch   Version Repository Size
========================================================
Installing:
 oracle-database-xe-18c  x86_64 1.0-1   /oracle... 5.2 G

Transaction Summary
========================================================
Install  1 Package

Total size: 5.2 G
Installed size: 5.2 G
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : oracle-database-xe-18c-1.0-1.x86_64  1/1
[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.
  Verifying  : oracle-database-xe-18c-1.0-1.x86_64  1/1

Installed:
  oracle-database-xe-18c.x86_64 0:1.0-1

Complete!


И явно около 5.2 GB е мястото, което наистина е необходимо за самия софтуер, защото преди инсталацията имах горе долу толкова повече свободно пространство на дяла. Да се опитаме да конфигурираме базата:

[root@oracle ~]# /etc/init.d/oracle-xe-18c configure
The location '/opt/oracle' specified for database files has insufficient space.
Database creation needs at least '4.5GB' disk space.
Specify a different database file destination that has enough space in the configuration file '/etc/sysconfig/oracle-xe-18c.conf'.


Аха... значи изискванията към дисковото пространство са горе долу същите като на Standard Edition on Linux. След преоразмеряване на диска и уголемяване на дяла конфигурацията минава успешно за около 10 минути:

[root@oracle ~]# /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: oracle.sotirov-bg.net/XEPDB1
     Multitenant container database: oracle.sotirov-bg.net
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE


Дори след успешна инсталация и конфигурация има нужда от две ръчни стъпки:
  • Задаване на променливи на средата. За това просто добавих следното в /etc/profile:
export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
export ORACLE_SID=XE
pathmunge $ORACLE_HOME/bin after

  • Разрешаване стартирането на базата със системата. За това използвах скрипта предоставен по-подразбиране в /etc/init.d/oracle-xe-18c и пуснах следното:
chkconfig --add oracle-xe-18c; chkconfig oracle-xe-18c on

systemctl enable oracle-xe-18c
  • Разрешаване на достъп по мрежата. За това е нужно да се разреши стандартния порт на слушателя 1521 на защитната стена:
firewall-cmd --permanent --zone=public --add-port=1521/tcp
systemctl reload firewalld

Време за връзка с базата:

[root@oracle ~]# sqlplus sys/password@//localhost:1521/XE as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Sun Oct 21 19:16:35 2018
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>


Ура! Сега след като базата е инсталирана и достъпна е време да заредя малко данни и да почвам да експериментирам.

Няма коментари: