Skip to Main Content

 

Auswahl  

APEX 23.2 Installation mit minimaler Downtime 

Oracle
APEX
APEX 23.2:ORDS 23.2
21.11.20 (MP)
25.11.23(MP)
APEX 23.2 Installation mit minimaler Downtime

Passende Schulungen zum Thema

Lange haben wir darauf gewartet, nun ist es endlich verfügbar. Seit  November 2023 kann man Oracle APEX 23.2 herunterladen. Im folgenden Tipp beschreiben wir kurz, wie es installiert wird.

Sie können APEX in jede Oracle Personal, Standard, Enterprise oder Express Edition (XE oder FREE) Datenbank installieren ab Version 18c

0. Erstellen Sie ein funktionierendes Backupo des Workspace, der Workspace Files und aller APEX Applikationen.
Das haben wir bereits in einem anderen Tipp thematisiert.

1. Herunterladen des Zip Files
Download Oracle APEX 23.2

2. Auspacken des Zip Files

# unzip apex_23.2.zip


3. Neue Bilderverzeichnisse vorbereiten und evtl an den tomcat Benutzer anpassen (teilweise wird auch www-data verwendet)

# cp -R /u01/software/apex/images/ /var/www/html/i2
# chown -R tomcat:tomcat i2



4. Webserver oder EPG stoppen (als root oder sudo)

# systemctl stop tomcat



5. In den ausgepackten Installationsordner gehen und die Installation via sql*plus starten:

# cd /u01/software/apex/
# sqlplus / as sysdba
SQL> SELECT tablespace_name FROM dba_tablespaces; -- Suchen Sie sich einen passenden aus
SQL> SELECT distinct tablespace_name FROM dba_segments
     WHERE owner like 'APEX%'; -- Da war bisher installiert (wenn es schon eine alte Installation gab )
SQL> @apexins APEX_TBS APEX_TBS TEMP /i/


6. Während das Skript läuft (bei unseren Maschinen ca 30 Min) kann der Bilderordener gewechselt werden

# mv /var/www/html/i /var/www/html/i_231_old
# mv /var/www/html/i2 /var/www/html/i


7. Nachdem das APEX 20.1 Installationsskript fertig ist, die REST Schnittstelle aktualisieren.
Sie sollten dazu die Passwörter der Benutzer APEX_LISTENER und APEX_REST_PUBLIC_USER zu Hand haben :-)

SQL> @apex_rest_config


8. Webserver oder EPG starten (als root oder sudo)

# systemctl start tomcat
oder
SQL> EXEC dbms_xdb.sethttpport(8080); -- oder den Port aus Schritt 4 wieder verwenden


9. Passwort für den Internal Workspace Admin Nutzer ändern

SQL> @apxchpwd


Sie werden die folgenden Parameter gefragt:
Benutzername: [Schlau ist, ihn nicht ADMIN zu nennen !]
Email: [Ihre Email Adresse angeben ]
Passwort: [Nur einmal !, also bitte nicht vertippen :-) ]

Vergessen Sie zum Abschluß nicht, den Browser Cache zu leeren!

Neuerung für die Neuinstallation:
Es gibt ein neues Universalskript mit Namen: apxsilentins.sql
Es übernimmt automatisch die folgenden Schritte:
a, Installation von APEX (Skript apexins.sql)
b, Erstellung oder Upgrade des Instanz-Admin-Accounts (Skript: apxchpwd.sql)
c, APEX_PUBLIC_USER konigurieren
d, Anpassung der Network ACLs
e, Static File Support mittels REST (Skript: apex_rest_config.sql

Aufruf-Syntax:

SQL> @apxsilentins.sql tablespace_apex tablespace_files tablespace_temp images
      password_apex_pub_user password_apex_listener password_apex_rest_pub_user
      password_internal_admin


Parametererklärung:

  • tablespace_apex  Tablespace für die Installation des APEX Benutzers
  • tablespace_files   Tablespace für Uploaded Files
  • tablespace_temp  Sortiertablespace
  • images  Bildordner
  • password_apex_pub_user Passwort für apex_public_user
  • password_apex_listener  Passwort für apex_listener
  • password_apex_rest_pub_user Passwort für apex_rest_public_user
  • password_internal_admin Passwort für den Internal Admin Benutzer


Beispielaufruf:

SQL> @apxsilentins.sql SYSAUX SYSAUX TEMP /i/ Passw0rt!#1 Passw0rt!#2 Passw0rt!#3 Passw0rt!#4


Alternative für Produktiv-Umgebungen (mit absoluter Downtime von unter 1 Minute!):
1-3 siehe oben
4. Webserver nicht beenden !
5. Variablen für die Parameter vorbereiten

SQL> REM Wenn Sie Ihren Tablespace nicht mehr wissen:
SQL> SELECT tablespace_name FROM dba_tablespaces ORDER BY 1;

SQL> DEFINE tablespace_apex=SYSAUX
SQL> DEFINE tablespace_files=SYSAUX
SQL> DEFINE tablespace_temp=TEMP
SQL> DEFINE images=/i/

 

Minimale Downtime, während der Installation (unter 1 Minute )


6. Phase 1: Installation des Full Development (Lief bei uns: 2m 10s)

SQL> @apexins1.sql &tablespace_apex. &tablespace_files. &tablespace_temp. &images.

Wenn nur die Runtime Version installiert werden soll:

SQL> @apxrtins1.sql &tablespace_apex. &tablespace_files. &tablespace_temp. &images.


7. Phase 2: Entwicklung ab jetzt nicht mehr möglich, Endanwender können weiterarbeiten (Lief bei uns: 4m 20s)

SQL> SET define "&"
SQL> @apexins2.sql &tablespace_apex. &tablespace_files. &tablespace_temp. &images.

Wenn nur die Runtime Version installiert werden soll:

SQL> SET define "&"
SQL> @apxrtins2.sql &tablespace_apex. &tablespace_files. &tablespace_temp. &images.

 

In den 4 Minuten, wo das Skript läuft haben Sie Zeit die Bilder/CSS/Javascript Dateien in das passende Webserver Verzeichnis zu kopieren.
Nur überschreiben Sie damit ja das alte Image Verzeichnis und dass muss ja noch 5 Minuten leben

Trick: Kopieren Sie die Bilder in ein Verzeichnis i2

Bei Apache Tomcat wäre das (bei uns): 

/opt/tomcat/latest/webapps

Wenn der Apache Webserver als Reverse Proxy davor geschalten ist: 

/var/www/html

Prüfen Sie ob die Dateien gelesen werden können (Rechte und Eigentümer beachten!)

https://ihr_server/i/apex_version.txt

Sollte zurückliefern:

Application Express Version:  23.2
8. Webserver beenden

# systemctl stop tomcat


9. Phase 3: Endanwender können NICHT mehr weiterarbeiten (lief bei uns 0m 40s)

SQL> SET define "&"
SQL> @apexins3.sql &tablespace_apex. &tablespace_files. &tablespace_temp. &images.

Wenn nur die Runtime Version installiert werden soll:

SQL> SET define "&"
SQL> @apxrtins3.sql &tablespace_apex. &tablespace_files. &tablespace_temp. &images.


Denken Sie nun daran die Bilverzeichnisse zu tauschen, also z.B.

# mv i i_old
# mv i2 i

 

BONUSTIPP:
Prüfen Sie, ob ACLS für die alte APEX Installation vorhanden sind, die gelöscht werden sollten:
Oracle APEX 23.2 migriert sogar die alten ACLS !!! Super !

SQL> select na.host,na.lower_port,na.upper_port,
nap.principal,nap.privilege,nap.end_date
from dba_network_acl_privileges nap, dba_network_acls na
where nap.acl=na.acl
and principal like 'APEX%'
order by principal;


Wenn Sie mit den Tests! erfolgreich durch sind, können Sie den alten Oracle APEX Benutzer löschen

SQL> DROP USER APEX_220200 CASCADE;


Und nun viel Spaß mit der schönen neuen APEX 23.2 Version. 

PS: Wir schulen Seit November 2023 schon mit der neuen Oracle APEX Version 23.2