Oracle 18 XE – erste Eindrücke

Oracle XE kommt mit vielen Funktionen und Optionen, die selbst die meisten Oracle Enterprise Edition Kunden nicht haben (siehe Oracle 18 XE ist da). In diesem Blog beschreibe ich, was bei der Installation und Konfiguration zu beachten ist.

Installation

Nie war es einfacher, eine Oracle Datenbank Software zu installieren. Ein einzelnes Paket von ca. 2,5 GByte genügt (Oracle hat endlich daran gedacht, nicht mit jedem Download eine uralte Version von SQL Developer oder APEX auszuliefern). Zusätzlich zu dem eigentlichen Paket muss noch das Preinstall Package heruntergeladen werden, ohne das und einer Anbindung an das Internet, geht es nicht. Was machen eigentlich SuSE Linux Kunden?

Download 18 XE
Nach dem Download kann die Software mit „yum“ installiert werden. Alle Schritte, sowohl die Installation der Software als auch die Konfiguration der Datenbank müssen als „root“ User ausgeführt werden. Wer mit Docker Containern zu tun hat, kennt diese Diskussion über Berechtigungen. Ich halte mich hier zurück.

# yum localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm
Examining oracle-database-xe-18c-1.0-1.x86_64.rpm: oracle-database-xe-18c-1.0-1.x86_64
Marking 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
…
Installed:
  oracle-database-xe-18c.x86_64 0:1.0-1

Dependency Installed:
  bc.x86_64 0:1.06.95-13.el7oracle-database-preinstall-18c.x86_64 0:1.0-1.el7

Complete!

Es ist nicht möglich, den Pfad für die Installation zu ändern. Das bedeutet, dass die Software im Verzeichnis /opt/oracle/product/18c/dbhomeXE (ORACLE_HOME) landet und ORACLE_BASE=/opt/oracle definiert wird.
Im Zuge der Installation wird auch der OS User (oracle mit der ID 54321) und die diversen OS Gruppen (oinstall, dba, oper, backupdba, dgdba, kmdba, racdba) angelegt. Wer für die Benutzer eigene IDs verwenden möchte, kann dies tun, indem er die Benutzer vorher manuell anlegt.

Leider hat Oracle vergessen, auch das Home-Verzeichnis für den Benutzer oracle anzulegen.

# mkdir -p /home/oracle
# chown oracle:oinstall /home/oracle

Datenbankerstellung

Bevor die Datenbank angelegt wird, kann man einige wenige Parameter in der Datei /etc/sysconfig/oracle-xe-18c.conf anpassen:

# 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=1521

# 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=/u02/oradata

# SKIP Validations, memory, space
SKIP_VALIDATIONS=false

Hier ist vor allem der Pfad für die Datenbank-Dateien wichtig. Standardmäßig liegen die Dateien im Verzeichnis /opt/oracle/oradata. Auch wenn es sich hier um eine XE-Datenbank mit maximal 12 GByte Benutzerdaten handelt, würde ich vorschlagen, ein eigenes Filesystem dafür zu definieren:

# mkdir -p /u02/oradata
# chown oracle:oinstall /u02/oradata

Bitte beachten Sie, dass der Host bekannt sein muss. Bei einfacheren Umgebungen, die nicht über einen DNS verfügen, kommt es oft zu folgendem Fehler beim Starten der Konfiguration:

# /etc/init.d/oracle-xe-18c configure
Configuring Oracle Database XE.
[FATAL] [DBT-06103] The port (5,500) is already in use.
   ACTION: Specify a free port.

Database configuration failed. Check logs under '/opt/oracle/cfgtoollogs/dbca'.

Der Grund ist nicht etwa, dass der Port belegt ist, sondern der Hostname ist nicht gesetzt. Also bitte in der /etc/hosts einen Eintrag mit dem Hostnamen hinzufügen. Danach sollte es keine weiteren Probleme beim Erstellen der Datenbank geben:

~]# /etc/init.d/oracle-xe-18c configure
...
Oracle Net Listener configured.
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: clapton.carajandb.local/XEPDB1
     Multitenant container database: clapton.carajandb.local
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE

Fertig!

Starten und Stoppen

Sogar an das automatische Starten und Stoppen der XE Datenbank hat Oracle gedacht:

Oracle Linux 6

# /sbin/chkconfig oracle-xe-18c on
# /sbin/service oracle-xe-18c start

Oracle Linux 7

# systemctl daemon-reload
# systemctl enable oracle-xe-18c

Anpassungen

Für Oracle XE gibt es keine Patches. Aus diesem Grund würde ich Ihnen empfehlen, Optionen, die Sie nicht unbedingt benötigen, zu deinstallieren. Dazu gehört vor allem die Oracle Java Virtual Machine (OJVM), weil sich diese in der Vergangenheit immer wieder als problematisch erwiesen hat.
Mike Dietrich hat das in seinen Blogs ausgiebig erläutert:
JAVAVM and XML Clean Up in Oracle Database 11.2-12.2 sowie Oracle Multimedia (ORDIM) Clean Up in Oracle Database 11.2-12.2
Damit sollten sich einige Patches von vorn herein vermeiden lassen.

Deinstallation

Netterweise hat Oracle auch gleich die Befehle für das Löschen der Datenbank sowie dem Löschen der Software mitgeliefert – aber wer wollte das schon!

# /etc/init.d/oracle-xe-18c delete
# yum remove oracle-database-xe-18c

Fazit

Das macht richtig Spaß! Eine kostenlose Oracle Datenbank mit Enterprise Edition Features und zusätzlich noch interessante Optionen. In meinem nächsten Blog werde ich Ihnen einige Beispiele für die Nutzung der Multitenant Database Option in der XE Datenbank geben.

Übrigens kann man eine XE Datenbank auch über den „dbca“ installieren. Was dabei zu beachten ist bzw. welche Möglichkeiten das eröffnet, dazu mehr in einem anderen Blog.
Falls Sie Fragen oder Anregungen haben, schreiben Sie bitte einen Kommentar oder schicken Sie eine Mail an info@carajandb.com

4 Kommentare zu „Oracle 18 XE – erste Eindrücke“

  1. Guten Tag
    wo kann ich das Preinstall Package heruntergeladen?

    Bei der Installation ist folgende Fehlermeldung aufgetreten:

    Error: Package: oracle-database-xe-18c-1.0-1.x86_64 (/oracle-database-xe-18c-1.0-1.x86_64)
    Requires: oracle-database-preinstall-18c

    Vielen Dank und freundliche Grüsse
    Vadi

    1. Das Preinstall Package bekommt man ebenfalls von Oracle. Bei der Verwendung von Oracle Linux funktioniert das einfach mit:
      yum -y install oracle-rdbms-server-12cR1-preinstall (die neueren Packages holt sich yum dann automatisch)

      Viel Erfolg

  2. Vladislav Michalko

    Guten Tag

    wir haben gestern ein Restore des Systems.
    Nach dem Restore läuft die XE Datenbank nicht mehr.

    [oracle@ixtu038 ~]$ . oraenv
    ORACLE_SID = [oracle] ? XE
    The Oracle base has been set to /opt/oracle
    [oracle@ixtu038 ~]$ sqlplus system
    SQL*Plus: Release 18.0.0.0.0 – Production on Thu Nov 14 10:16:53 2019
    Version 18.4.0.0.0
    Copyright (c) 1982, 2018, Oracle. All rights reserved.
    Enter password:
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 4150
    Additional information: 280682727
    Process ID: 0
    Session ID: 0 Serial number: 0

    Ich vermute stark, dass die DB nochmals gestartet werden muss oder?
    Können Sie mir bitte helfen?
    Es hat vorher alles perfekt funktioniert.
    Vielen Dank und freundliche Grüsse
    Vladi

    1. Ja genau, Sie müssen die Datenbank neu starten:
      Anmeldung als Oracle user:
      sqlplus / as sysdba
      Startup

      und den Listener nicht vergessen:
      lsnrctl start
      Sie sollten dann den Startup beim Reboot des Servers automatisieren. Bei Oracle Linux mit folgenden Befehlen:
      systemctl daemon-reload
      systemctl enable oracle-xe-18c

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen