Skip to main content

Oracle XE DB Installation

Die Oracle XE Datenbank läuft nur auf Intel-Prozessoren. Auf ARM basierten Servern wie z. B. dem Raspberry PI lässt sich die Datenbank nicht installieren.

Um mit der freien Oracle XE Datenbank arbeiten zu können, wird diese auf dem lokalen Server ubusrv als Docker Container installiert. Hierzu ist die Datei ~/workspace/docker/docker-compose.yml um folgenden Eintrag zu ergänzen:

    #
    # Oracle XE DB
    #
    oracle:
        image: gvenzl/oracle-xe:full
        volumes:
            - oracle_data:/data/oradb
        restart: always
        ports:
            - 1521:1521
        environment:
            ORACLE_PASSWORD: bistef03
            APP_USER: anlei
            APP_USER_PASSWORD: anlei

...
#
# Declare Volumes
#
volumes:
    db_data: {}
    mongo_data: {}
    oracle_data: {}

Nach einem sudo docker-compose down gefolgt von einem sudo Docker-compose up & wird das Image vom Docker-Hub heruntergeladen, installiert und gestartet.

Die Datenbank ist nun über das Port 1521 erreichbar. Neben dem Datenbank Basis-Container XE-DB wurde im Datenbank-Container XEPDB1 automatisch das Schema ANLEI angelegt. Auslöser sind die Parameter APP_USER und APP_USER_PASSWORD in obiger .yml Datei. Somit können zwei DBA-Verbindungen und eine USER-Verbindung zur Datenbank aufgebaut werden. Die Verbindungsparameter für diese lauten für den SQL-Developer wie folgt:

SYS@XE-DB
=========
	Datenbanktyp: 			Oracle
	Authentifizierungstyp: 	Standard
	Benutzername:			sys
	Rolle:					SYSDBA
	Kennwort:				bistef03
	Verbindungstyp:			Einfach
    Hostname:				ubusrv
    Port:					1521
    SID:					XE
    Servica-Name:			(kein Eintrag)

SYS@XEPDB1
==========
	Datenbanktyp: 			Oracle
	Authentifizierungstyp: 	Standard
	Benutzername:			sys
	Rolle:					SYSDBA
	Kennwort:				bistef03
	Verbindungstyp:			Einfach
    Hostname:				ubusrv
    Port:					1521
    SID:					(kein Eintrag)
    Servica-Name:			XEPDB1

ANLEI@XEPDB1
==========
	Datenbanktyp: 			Oracle
	Authentifizierungstyp: 	Standard
	Benutzername:			anlei
	Rolle:					Standard
	Kennwort:				anlei
	Verbindungstyp:			Einfach
    Hostname:				ubusrv
    Port:					1521
    SID:					(kein Eintrag)
    Servica-Name:			XEPDB1

Um ein weitere Schemas im Arbeitscontainer XEPDB1 anzulegen, sind nachfolgende SQL-Befehle als SYS-User auszuführen:

//
// Es wird davon ausgegangen, dass SYS sich auf dem Basis-Container
// angemeldet hat. Sollte sich SYS auf dem dem Arbeits-Container
// XEPDB1 angemeldet haben, können die beiden ALTER SESSION Befehle
// zu Beginn und zum Ende des Skripts auskommentiert werden.
//
// Der Term <schemaname> ist durch den gewünschten Schema-Namen zu
// ersetzen.
//
ALTER SESSION SET CONTAINER = XEPDB1;

CREATE BIGFILE TABLESPACE
    <schemaname>_bfts
    DATAFILE '<schema_name>_bfts1.dbf'
    SIZE 20M
    AUTOEXTEND ON
;

CREATE USER
    <schemaname>
    IDENTIFIED BY <password>
    DEFAULT TABLESPACE <schemaname>_bfts
    QUOTA UNLIMITED ON <schema_name>_bfts
;

GRANT ALL PRIVILEGES TO <schema_name> WITH ADMIN OPTION;

ALTER SESSION SET CONTAINER = CDB$ROOT;