Skip to Main Content

 

Auswahl  

Oracle ORDS 22.x Installation und Fehlerbehebung / ORDS Troubleshooting 

Oracle
APEX:ORDS
ORDS 22.2:ORDS 23.1:ORDS 23.2
15.03.23 (MP)
05.08.23(MP)
Oracle, ORDS 22.x , Installation

Passende Schulungen zum Thema

Seit nun fast einem Jahr (Mai 2022)  ist die neue Oracle ORDS Version 22.x zum Download verfügbar. Wie heisst ein berühmtes Zitat: Mann muss in einem System jeden Fehler gemacht haben um das System verstanden zu haben.        
Na dann sind wir kurz davor alles zu wissen :-) …

  1. Installation
  2. Prüfung im OS
  3. Silent Installation (Unix)
  4. Weitere Datenbank in ORDS eintragen (Unix)
  5. Silent Installation (Win)
  6. Zusätzliche Datenbank in ORDS eintragen (win)
  7. Prüfungen Im Betriebssystem
  8. Prüfungen in der Datenbank

1. Installation

Laden Sie die Software von Oracle herunter und packen Sie das ZIP File in einem eigenen Ordner aus.        
Prüfen Sie nun Ihre installierte Java Version:

Unix / Linux

java --version
java 11.0.16.1 2022-08-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.16.1+1-LTS-1)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.16.1+1-LTS-1, mixed mode)
                                

Das sieht gut aus …

Windows:

java.exe --version
openjdk 11 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

Das ist schlecht, weil Oracle unterstützt keine Java JDK Version. KEINE !        
Es kann funktionieren, bei uns trat meist ein Webserver Fehler 500 auf (ohne große Begründung)        
Unterstützt werden nur die Oracle Java Versionen 11 und 17 

Nach erfolgreicher Installation Oracle Java Version gehen Sie in deen ausgepackten Ordner (z.B. cd c:\temp\ords)

Dort sollte ein bin Ordner liegen und da drin eine ords.exe und eine ords Datei

Tragen Sie Java in Ihren Pfad ein:

Windows:

set PATH=%PATH%;"C:\Program Files\Java\jdk-11\bin"

UNIX:

export PATH=$PATH:/usr/bin/

Wenn Java in Ihrem Pfad eingetragen wurde starten Sie die Installation mit:

Windows:
bin/ords.exe --config c:\oracle\ords install

Tipp: Sie sollten auch der Installation des Ords das bin Verzeichnis des ORDS und die Datei ords.war nicht wegwerfen. Für nachtägliche Wartungsarbeiten benötigt man die Dateien.
Sie können die Datein z.B in den Hauptordner des Config kopieren, also z.B. C:\oracle\ords für Windows, oder /opt/oracle für Linux.

Ab ORDS Version 22.2.x wird der Pfad für den Config Ordner beim Tomcat unter UNIX im Service File eingetragen:

cat /etc/systemd/system/tomcat.service:

…
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Dconfig.url=/opt/oracle/ords"
…

Unix/Linux:

 bin/ords --config /opt/oracle/ords install

Interaktion mit dem Skript:

# bin/ords --config /opt/oracle/ords install
ORDS: Release 22.4 Produktion am Mi. März 15 06:49:08 2023
Copyright (c) 2010, 2023, Oracle.
Konfiguration:/opt/oracle/ords/
Der Konfigurationsordner /opt/oracle/ords enthält keine Konfigurationsdateien.
Oracle REST Data Services - Interaktive Installation
Geben Sie eine Zahl zur Auswahl des Installationstyps ein
[1] ORDS nur in der Datenbank installieren oder upgraden
[2] Datenbankpool erstellen oder aktualisieren und ORDS in der Datenbank installieren/upgraden
[3] Nur Datenbankpool erstellen oder aktualisieren
Choose [2]:
Geben Sie eine Zahl zur Auswahl des zu verwendenden Datenbankverbindungstyps ein
[1] Basis (Hostname, Port, Servicename)
[2] TNS (TNS-Alias, TNS-Verzeichnis)
[3] Benutzerdefinierte Datenbank-URL
Choose [1]:
Geben Sie den Hostnamen der Datenbank ein [localhost]: 172.30.30.141
Listener-Port der Datenbank eingeben [1521]:
Datenbankservicename eingeben [orcl]: apex222
Geben Sie einen Datenbankbenutzernamen mit Administratorberechtigungen an.
Geben Sie den Administratorbenutzernamen ein: sys
Datenbankkennwort für SYS AS SYSDBA eingeben:
Verbindung zu Datenbankbenutzer: SYS AS SYSDBA URL: jdbc:oracle:thin:@//172.30.30.141:1521/apex222 wird hergestellt
Informationen werden abgerufen.
Geben Sie den Default Tablespace für ORDS_METADATA und ORDS_PUBLIC_USER ein [SYSAUX]:
Geben Sie den Temporary Tablespace für ORDS_METADATA und ORDS_PUBLIC_USER ein [TEMP]:
Geben Sie eine Zahl ein, um zusätzliche Features zum Aktivieren auszuwählen:
 [1] Datenbankaktionen (aktiviert alle Features)
 [2] REST-fähige SQL und Datenbank-API
 [3] REST-fähige SQL
 [4] Datenbank-API
 [5] Kein Wert
Choose [1]:
 Geben Sie eine Zahl zum Konfigurieren und Starten von ORDS im Standalone-Modus ein
 [1] ORDS im Standalone-Modus konfigurieren und starten
 [2] Überspringen
 Choose [1]: 2
 …
 INFO: 08:19:07 Validating objects for Oracle REST Data Services.
 VALIDATION: 08:19:07 Starting validation for schema: ORDS_METADATA
 VALIDATION: 08:19:07 Validating objects
 VALIDATION: 08:19:08 Validating roles granted to ORDS_METADATA and
 ORDS_PUBLIC_USER
 VALIDATION: 08:19:08 Validating ORDS Public Synonyms
 VALIDATION: 08:19:08 Total objects: 306, invalid objects: 0, missing objects: 0
 VALIDATION: 08:19:08     94  INDEX
 VALIDATION: 08:19:08      3  LOB
 VALIDATION: 08:19:08     15  PACKAGE
 VALIDATION: 08:19:08     14  PACKAGE BODY
 VALIDATION: 08:19:08      1  PROCEDURE
 VALIDATION: 08:19:08     52  PUBLIC SYNONYM
 VALIDATION: 08:19:08      1  SEQUENCE
 VALIDATION: 08:19:08     32  TABLE
 VALIDATION: 08:19:08     32  TRIGGER
 VALIDATION: 08:19:08     20  TYPE
 VALIDATION: 08:19:08      6  TYPE BODY
 VALIDATION: 08:19:08     36  VIEW
 VALIDATION: 08:19:08 Validation completed.
 INFO: 08:19:08 Completed validation for Oracle REST Data Services.
 PL/SQL-Prozedur erfolgreich abgeschlossen.
 Commit abgeschlossen.
 ------------------------------------------------------------
 Containername: APEX222
 Skripts für scheduler werden ausgeführt
 ------------------------------------------------------------
 …
 PL/SQL-Prozedur erfolgreich abgeschlossen.
 Commit abgeschlossen.
 2023-03-15T07:19:15.030Z INFO        Installation für Oracle REST Data Services Version 22.4.4.r0411526 wurde abgeschlossen. Verstrichene Zeit: 00:00:27.496
 [*** Informationen: Installation für Oracle REST Data Services Version 22.4.4.r0411526 wurde abgeschlossen. Verstrichene Zeit: 00:00:27.496
 ]
 ------------------------------------------------------------
 Containername: APEX222
 ------------------------------------------------------------
 [*** script: ords_configure_gateway.sql]
 Configured PL/SQL Gateway user APEX_PUBLIC_USER to be proxiable from
 ORDS_PUBLIC_USER
 PL/SQL-Prozedur erfolgreich abgeschlossen.
 2023-03-15T07:19:15.130Z INFO        Konfiguration von PL/SQL-Gatewaybenutzer für Oracle REST Data Services Version 22.4.4.r0411526 wurde abgeschlossen. Verstrichene Zeit: 00:00:00.95
 [*** Informationen: Konfiguration von PL/SQL-Gatewaybenutzer für Oracle REST Data Services Version 22.4.4.r0411526 wurde abgeschlossen. Verstrichene Zeit: 00:00:00.95
 ]

3. Silent Installation (Unix)

export DB_PORT=1521
export DB_SERVICE=apex231
export SYSDBA_USER=SYS
export SYSDBA_PASSWORD=sys
export ORDS_PASSWORD=ords
export ORDS_HOME=/opt/oracle/ords
export ORDS_CONFIG=/opt/oracle/ords
export ORDS_LOGS=$ORDS_CONFIG/logs
export PATH=$PATH:$ORDS_HOME/bin
ords --config $ORDS_CONFIG install \
--log-folder $ORDS_LOGS \
--admin-user $SYSDBA_USER \
--db-hostname 127.0.0.1 \
--db-port $DB_PORT \
--feature-db-api true \ 
--feature-rest-enabled-sql true \
--feature-sdw true \
--gateway-mode proxied \
--gateway-user APEX_PUBLIC_USER \
--proxy-user 

Zugriff dann via: http:server:8080/ords

4. oder neue Datenbank zusätzlich in ORDS (Unix) eintragen:

ords --config $ORDS_CONFIG install \
--db-pool $DB_SERVICE \
--admin-user $SYSDBA_USER \
--db-hostname 127.0.0.1 \
--db-port $DB_PORT \
--db-servicename $DB_SERVICE \
--feature-db-api true \ 
--feature-rest-enabled-sql true \
--feature-sdw true \
--gateway-mode proxied \
--gateway-user APEX_PUBLIC_USER \
--proxy-user 

 Zugriff dann via: http:server:8080/ords/$DB_SERVICE

5. Silent Installation unter Windows:

set DB_PORT=1521
set DB_SERVICE=apex231
set SYSDBA_USER=SYS
set SYSDBA_PASSWORD=sys
set ORDS_PASSWORD=ords
set ORDS_HOME=c:\oracle\ords
set ORDS_CONFIG=c:\oracle\ords
set ORDS_LOGS=%ORDS_CONFIG%\logs
set PATH=%PATH%;%ORDS_HOME%\bin
ords --config %ORDS_CONFIG% install ^ 
--log-folder %ORDS_LOGS% ^
--admin-user %SYSDBA_USER% ^
--db-hostname 127.0.0.1 ^
--db-port %DB_PORT% ^
--db-servicename %DB_SERVICE% ^
--feature-db-api true ^
--feature-rest-enabled-sql true ^
--feature-sdw true ^
--gateway-mode proxied ^
--gateway-user APEX_PUBLIC_USER ^
--proxy-user 

6. Zusätzliche Datenbank in ORDS eintragen (Windows)

ords --config %ORDS_CONFIG% install ^ 
--log-folder %ORDS_LOGS% ^
--db-pool %DB_SERVICE% ^
--admin-user %SYSDBA_USER% ^
--db-hostname 127.0.0.1 ^
--db-port %DB_PORT% ^
--db-servicename %DB_SERVICE% ^
--feature-db-api true ^
--feature-rest-enabled-sql true ^
--feature-sdw true ^
--gateway-mode proxied ^
--gateway-user APEX_PUBLIC_USER ^
--proxy-user 

Zugriff dann via: http:server:80/ords/%DB_SERVICE%

7. Prüfung im OS

Wir oben beschrieben muss die richtige Java Version installiert worden sein (Oracle Java 11 oder 17)        
Kann der config Ordner von Oracle/Tomcat gelesen werden? Wenn nicht bitte Lese/Schreibrechte vergeben.

 

8. Prüfung in der Datenbank

Sind alle notwendigen Accounts NICHT gesperrt und stimmt das Passwort ?

select username,account_status,lock_date,expiry_date
from dba_users
where username like '%PUBLIC%';
USERNAME                 ACCOUNT_STATUS     LOCK_DATE           EXPIRY_DATE        
------------------------ ------------------ ------------------- -------------------
APEX_PUBLIC_USER         LOCKED             15.03.2023 07:57:59                    
APEX_REST_PUBLIC_USER    OPEN                                   11.09.2024 08:08:32

Das schaut hier nicht gut aus, der Benutzer APEX_PUBLIC_USER ist gesperrt!.

Entsperren mittels:

ALTER USER apex_public_user ACCOUNT UNLOCK IDENTIFIED BY apex;

Danach starten wir dem TomCat nochmal durch.

Windows:

net stop TomCat9
net start TomCat9

Für den Fall, dass Sie das Passwort vom ORDS_PUBLIC_USER in der DB geändert haben und das im ORDS nachtragen möchten:

Für den Default Pool: (wenn der Config Ordner unter /opt/oracle/ords liegt)

ords --config /opt/oracle/ords config --db-pool default secret db.password

Für einen anderen Pool (hier apex231)

ords --config /opt/oracle/ords config --db-pool apex231 secret db.password

 

Fehlermeldung: Benutzer oder Kennwort für den Verbindungspool namens |default|lo| ist ungültig oder abgelaufen, oder der Account wurde gesperrt 

Die naheliegenden Lösungen wären natürlich:

  • Passwort falsch
  • Account abgelaufen

aber in unserem Fall war die Datenbank (pluggable Database Container) im restricted Modus:

Die Lösung war:

alter pluggable database <containername> close immediate;
alter pluggable database <containername> open;

Mehr Tipps & Tricks erfahren Sie in unserem Oracle ORDS und im APEX 2 Kurs. Wir freuen uns auf Sie!