Inhaltsverzeichnis
Oracle ORDS und APEX 22/23 auf den neuesten Stand halten - Upgrade APEX / ORDS/ Tomcat / Apache unter Linux
Aufgabe
Eine Apache/Tomcat/ORDS/APEX 22/23 Umgebung unter Oracle Linux soll auf den neusten Stand gehoben werden.
Die Installation wurde zu vor nach folgenden Muster durchgeführt ⇒ Oracle Apex 21.1 / ORDS 21.2 / Tomcat 9 / Apache 2.4 mit der Oracle Datenbank 19c unter Oracle Linux 8 - Installation
Betriebsystem:
- Oracle Linux 8
Datenbank:
- Oracle Datenbank 19c ⇒ https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
Web Produktstack:
- Apache Webserver
- Apache Tomcat 9
Architektur Übersicht:
ab ORDS 22
Mit dem ORDS in der Version 22 hat sich der Upgrade Prozess etwas geändert, ein neues Tool soll/kann die Konfiguration erleichterten.
Ablauf:
- Aktuelle Versionen ermitteln
- Backup Eigenentwicklung
- Backup der ORDS / APEX Rest API Definition (falls im Einsatz) als PL/SQL Skript erstellen
- Backup der bisherigen ORDS Konfiguration
- Ermitteln aller Passwörter der ORDS/APEX User in der DB wie ORDS_PUBLIC_USER,APEX_PUBLIC_USER
- Backup alle APEX Applikationen und der Workspaces
- Snapshot des Applikationsservers anlegen
- Start Downtime 1
- Betriebssystem und Apache http upgraden; reboot
- Java aktualisieren
- Apache Tomcat aktualisieren
- Test APEX App - Muss noch funktionieren da keine Änderung am Oracle Stack bis zu diesem Punkt!
- ORDS aktualisieren
- Rest Service testen und bei Bedarf neu anlegen
- Ende Downtime 1
- Test Rest API und APEX
- Start Downtime 2
- ORDS stoppen
- APEX in Datenbank upgraden
- APEX Statische Ressourcen wie Bilder und Java Skripte / CSS Libs austauschen
- APEX Patch in DB einspielen und auch statische Objekte aktualisieren
- ORDS Start
- Test
- Ende Downtime 2
Vorbereitung
Prüfen welche Versionen im Einsatz sind:
Java :
/usr/bin/java -version java version "21.0.1" 2023-10-17 LTS Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29) Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)
Apache http:
apachectl -v Server version: Apache/2.4.37 (Oracle Linux) Server built: Oct 24 2023 23:52:21
Apache tomcat:
/srv/tomcat/tomcat/bin/version.sh .. Server version: Apache Tomcat/9.0.83 Server built: Nov 9 2023 20:57:42 UTC Server number: 9.0.83.0 ..
ORDS Version vor 22:
# in das ORDS Home wechseln cd /srv/ords/ords /usr/bin/java -jar ords.war version Oracle REST Data Services 20.4.3.r0501904
ORDS Version ab 22:
./bin/ords --version Oracle REST Data Services 23.3.0.r2891830
APEX Version
# an der DB mit sys anmelden # falls Container DB auf den richtigen Container achten! SELECT * FROM DBA_REGISTRY WHERE COMP_ID = 'APEX'; Oracle Application Express 20.2.0.00.20 #Patch Stand: SELECT patch_version, installed_on FROM apex_patches; PATCH_VERSION INSTALLED_ON ------------------------------ ---------------------------------------------------------------------------- 2021.03.21 2021-03-27 17:20:43
APEX Image Dir
Eine wichtige Frage in einer Umgebung ist auch der Wert des Image Prefix, besonders wenn die statischen Ressourcen zum Beispiel vom Apache HTTP ausgeliefert werden sollen.
Dann muss dazu ja auch das passende Alias angelegt sein und dort müssen später die statischen Dateien angepasst werden!
Die Information ist im Package wwv_flow_image_prefix als Konstante hinterlegt und lässt sich im Sourcecode einsehen.
Backup APEX und ORDS Rest API
ORDS Rest API
Sichern über den SQL*Developer bzw. SQLCl oder SQL*Plus.
siehe dazu auch ⇒ https://www.thatjeffsmith.com/archive/2018/12/how-to-export-your-restful-services/
SQLcl
Download über https://www.oracle.com/de/database/sqldeveloper/technologies/sqlcl/download/
Bei Java Fehler zuvor ein JAVA_HOME setzen!
export JAVA_HOME=/usr/lib/jvm/jdk-19-oracle-x64 sql / as sysdba help rest REST ------ Use REST to export/import modules or list objects from Oracle REST Data Services. REST export - Export all modules REST export <module_name> - Export a specific module REST export <module_prefix> - Export a specific module related to the given prefix REST modules - List the available modules REST privileges - List the existing privileges REST schemas - List the available schemas REST import <json_file_path> - Imports a swagger 2.0 or openapi 3.0 swagger file. It will return skeleton calls that can recreate a similar service in ORDS. REST schemas PARSING_SCHEMA PATTERN STATUS -------------- ------- ------- GPI gpi ENABLED REST modules NAME PREFIX STATUS ITEMS_PER_PAGE ---- ------ ------ -------------- xxxx #Mit spool und REST export exportieren
Backup APEX
siehe z.B. ⇒ Oracle Apex Source Code automatisch exportieren und einchecken mit Git unter Windows mit der PowerShell
Betriebssystem und Apache http upgraden
OS Update als root:
#alles dnf upgrade #oder nur den HTTPd dnf upgrade httpd.x86_64 apachectl -v Server version: Apache/2.4.37 (Oracle Linux) Server built: Aug 5 2022 04:59:17
Java aktualisieren
Hier kann nun Oracle Java eingesetzt werden da der ORDS zum Einsatz kommen soll und nur für diese Oracle Produkt Java verwendet wird.
Notwendige Java Version prüfen und JDK nach Bedarf installieren.
Siehe dazu die Node ⇒ Support Entitlement for Java SE When Used As Part of Another Oracle Product (Doc ID 1557737.1)
Als User root!
Kopieren jdk-21_linux-x64_bin.rpm von https://www.oracle.com/java/technologies/downloads/ und installieren:
cd /tmp https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.rpm # sha256 checksum prüfen #67d89edc87326c80f94efeb8970860053700170ddea1d900e8c0a7461e858e57 von der Webseite 67d89edc87326c80f94efeb8970860053700170ddea1d900e8c0a7461e858e57 jdk-22_linux-x64_bin.rpm # Java installieren dnf install --nogpgcheck jdk-22_linux-x64_bin.rpm # Java aktivieren # Neue Java Version dem OS bekannt geben /usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk-22.0.2 2202 # Versionen anzeigen /usr/sbin/alternatives --display java # Version einstellen /usr/sbin/alternatives --config java # Version /usr/lib/jvm/jdk-22-oracle-x64/bin/java auswählen # testen java -version java version "21.0.1" 2023-10-17 LTS # alte Java Version deinstallieren dnf list installed java* dnf erase java-11-openjdk.x86_64 java-11-openjdk-headless.x86_64 # älter JDK's wieder deinstallieren dnf list installed jdk* # dnf remove jdk-21.x86_64
Das Programm jps sollte auf dem Server im Pfad liegen/funktionieren, ist sehr hilfreich für die Wartung Nach einem Java Upgrade muss das Kommando jps evlt. wieder neu verlinkt werden:
#testen ob notwendig, in 15.0 hat es aber mit alternatives richtig geklappt jps -m # falls fehler # über /usr/bin verlinken rm /usr/bin/jps ln -s /usr/java/jdk-21-oracle-x64/bin/jps /usr/bin/jps
Apache Tomcat Upgrade
Im Zuge des Upgrades ist es sehr sinnvoll auch per Verlinkung auf eine generische Datei Struktur umzustellen.
D.h. die Installation von Tomcat findet in ein Verzeichnis mit der Versionsnummer statt, die Konfiguration aber in einem generischen Tomcat Verzeichnis, über eine Verlinkung wird das zusammen „verwoben“.
Das hat den Vorteil das bei einem Update nur der Link angepasst werden muss, die bestehende Konfiguration verbleibt unverändert.
Siehe zur Grundsturuktur die eigentliche Installation unter Oracle Apex 21.1 / ORDS 21.2 / Tomcat 9 Installation
Software über ⇒ https://tomcat.apache.org/download-90.cgi herunterladen.
Tomcat Sofware installieren:
su - tomcat cd /srv/tomcat mkdir install cd install wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz sha512sum apache-tomcat-9.0.83.tar.gz 3f022ec8552bce1b72eb85d0778c93052ccb00226de3302544ec844ab93a9991e19c2db56ed06c18f03e5d75f34a46cedac46ae83bdd225518a55c62fc69ea04 apache-tomcat-9.0.83.tar.gz # mit dem Key der Webseite vom Tomcat vergleichen um sicher zu sein das alles auch da und unverändert ist! # in dieser Verzeichnis auspacken cd .. mkdir apache-tomcat-9.0.83 tar xzf ./install/apache-tomcat-9.0.83.tar.gz #aber dann neu verlinken! rm /srv/tomcat/tomcat ln -s /srv/tomcat/apache-tomcat-9.0.83/ /srv/tomcat/tomcat #prüfen cd /srv/tomcat/tomcat/bin ./version.sh Server version: Apache Tomcat/9.0.83 Server built: Jul 14 2022 12:28:53 UTC
!Achtung mit Java 18 haben sich einige Memory Parameter geändert! Siehe dazu auch https://www.oracle.com/java/technologies/javase/8-compatibility-guide.html
.. The command line flags PermSize and MaxPermSize have been removed and are ignored Replace -XX:MaxPermSize with -XX:MaxMetaspaceSize. ..
D.h. wir müssen unseren vorherigen Einstellung unter /etc/systemd/system/tomcat.service anpassen!
vi /etc/systemd/system/tomcat.service
[Unit] Description=Tomcat - instance After=syslog.target network.target dbora.service [Service] Type=forking User=tomcat Group=tomcat WorkingDirectory=/srv/tomcat/config Environment="JAVA_HOME=/usr/java/latest" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Dconfig.url=/srv/ords/config" Environment="CATALINA_PID=/srv/tomcat/config/run/tomcat.pid" Environment="CATALINA_BASE=/srv/tomcat/config" Environment="CATALINA_HOME=/srv/tomcat/tomcat" Environment="CATALINA_OPTS=-Xms1024m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -server -XX:+UseParallelGC" ExecStart=/srv/tomcat/tomcat/bin/startup.sh ExecStop=/srv/tomcat/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
Und für die neue ORDS 22 Konfiguration den Parameter „-Dconfig.url=/srv/ords/config“ mit aufnehmen!
Als root service neu starten und prüfen
systemctl stop tomcat.service systemctl daemon-reload systemctl start tomcat.service systemctl status tomcat.service
Teste ob noch ein Anmelden am APEX Workspace möglich ist, bisher haben wir die eigentliche ORDS/APEX Welt ja noch nicht angepasst, an diesem Punkt sollte noch alles funktionieren!
ORDS aktualisieren
Im nächsten Schritt kann der Update des ORDS durchgeführt werden als der User oracle.
Hierbei ist zu beachten:
- Bisherige ORDS Konfiguration sichern - wird so nicht mehr verwendet und muss neu erzeugt werden falls zuvor der ORDS < 22
- In einer reinen APEX Umgebung Keine Feature installieren um nicht unnötige Sicherheitslücken zu erzeugen
- bin/ords Script für die Konfigurtion verwenden
- Pfad zur Config muss über Java Option an Tomcat übergeben werden, Start Skripte müssen angepasst werden
Software bereitstellen
Dazu die aktuelle Version herunterladen und mit der Versionsnummer in ein eigenes Verzeichnis entpacken.
Über https://www.oracle.com/database/sqldeveloper/technologies/db-actions/download/ die Version 22.2.1.202.1302 - July 28, 2022 des ORDS herunterladen.
Checksum prüfen, ob diese mit der Website angegebenen übereinstimmt:
sha1sum ords-latest.zip b6c1f847714453f4053583e96d8a52bff40bfe92 ords-latest.zip
Auspacken als User „oracle“ und wieder neu verlinken:
su - oracle mkdir -p /srv/ords/ords-23.3.0 #Auspacken unzip /srv/install/ords-latest.zip -d /srv/ords/ords-23.3.0 # verlinken rm /srv/ords/ords ln -s /srv/ords/ords-23.3.0/ /srv/ords/ords
Version prüfen:
cd /srv/ords/ords/bin ./ords --version ORDS: Release 23.3.0 Production on Tue Sept 13 15:51:02 2022 Copyright (c) 2010, 2023, Oracle. Configuration: /srv/ords/ords-23.3.0/bin/ Oracle REST Data Services 23.3.0.r2021302
Konfiguration sichern und neues Verzeichnis zur Verfügung stellen
Unsere Konfiguration liegt schon extra außerhalb der ORDS Software unter „/srv/ords/config“.
Diese erstmal sichern:
/srv/ords cp -r config/ config_ords_20 mv config config_old mkdir config
Vor 22 wurde dieser Pfad im War File hinterlegt, aber der Version 22 muss der Pfad extra als Variable beim Aufruf mit übergeben werden! Parameter „export _JAVA_OPTIONS=-Dconfig.url=/srv/ords/config“
ORDS Meta Repository in der DB upgraden und DB Pool Konfiguration neu erzeugen
Aufruf des Upgardes mit dem ORDS Kommandozeilen Tool unter $ORDS_HOME/bin:
cd /srv/ords/ords/bin ./ords --config /srv/ords/config/ install -i ORDS: Release 22.2 Production on Tue Sept 13 16:13:36 2022 Copyright (c) 2010, 2022, Oracle. Configuration: /srv/ords/config/ The configuration folder /srv/ords/config does not contain any configuration files. Oracle REST Data Services - Interactive Install Enter a number to select the type of installation [1] Install or upgrade ORDS in the database only [2] Create or update a database pool and install/upgrade ORDS in the database [3] Create or update a database pool only Choose [2]: 2 Enter a number to select the database connection type to use [1] Basic (host name, port, service name) [2] TNS (TNS alias, TNS directory) [3] Custom database URL Choose [1]: 1 Enter the database host name [localhost]: 10.10.10.90 Enter the database listen port [1521]: 1521 Enter the database service name [orcl]: SRV_GPIDB_MAIN Provide database user name with administrator privileges. Enter the administrator username: sys Enter the database password for SYS AS SYSDBA: Connecting to database user: SYS AS SYSDBA url: jdbc:oracle:thin:@//10.10.10.90:1521/SRV_GPIDB_MAIN Retrieving information. Connecting to database user: ORDS_PUBLIC_USER url: jdbc:oracle:thin:@//10.10.10.90:1521/SRV_GPIDB_MAIN Enter a number to select additional feature(s) to enable: [1] Database Actions (Enables all features) [2] REST Enabled SQL and Database API [3] REST Enabled SQL [4] Database API [5] None Choose [1]: 5 Enter a number to configure and start ORDS in standalone mode [1] Configure and start ORDS in standalone mode [2] Skip Choose [1]: 2 The setting named: db.connectionType was set to: basic in configuration: default The setting named: db.hostname was set to: 10.10.10.90 in configuration: default The setting named: db.port was set to: 1521 in configuration: default The setting named: db.servicename was set to: SRV_GPIDB_MAIN in configuration: default The setting named: plsql.gateway.mode was set to: proxied in configuration: default The setting named: db.username was set to: ORDS_PUBLIC_USER in configuration: default The setting named: db.password was set to: ****** in configuration: default The setting named: feature.sdw was set to: false in configuration: default The global setting named: database.api.enabled was set to: false The setting named: restEnabledSql.active was set to: false in configuration: default The setting named: security.requestValidationFunction was set to: wwv_flow_epg_include_modules.authorize in configuration: default 2022-09-13T16:16:24.818Z INFO Upgrading Oracle REST Data Services schema 20.4.3.r0501904 to version 22.2.1.r2021302 in NON_CDB ------------------------------------------------------------ Date : 13 Sept 2022 16:16:24 Release : Oracle REST Data Services 22.2.1.r2021302 Type : ORDS Upgrade from 20.4.3.r0501904 to 22.2.1.r2021302 Database : Oracle Database 19c Enterprise Edition DB Version : 19.9.1.0.0 ------------------------------------------------------------ Container Name: NON_CDB ------------------------------------------------------------ ... [*** Info: Completed updating database password for ORDS_PUBLIC_USER. Elapsed time: 00:00:00.78 ]
Erzeugte Konfiguration anzeigen lassen:
./ords --config /srv/ords/config/ config list ORDS: Release 22.2 Production on Tue Sept 13 16:45:51 2022 Copyright (c) 2010, 2022, Oracle. Configuration: /srv/ords/config/ Database pool: default Setting Value Source ---------------------------------- -------------------------------------- ----------- database.api.enabled false Global db.connectionType basic Pool db.hostname 10.10.10.90 Pool db.password ****** Pool Wallet db.port 1521 Pool db.servicename SRV_GPIDB_MAIN Pool db.username ORDS_PUBLIC_USER Pool feature.sdw false Pool plsql.gateway.mode proxied Pool restEnabledSql.active false Pool security.requestValidationFunction wwv_flow_epg_include_modules.authorize Pool
Konfiguration anpassen / tunen
Was lässt sich konfigurieren:
./ords --config /srv/ords/config/ config info ..
z.B. Pool Größen anpassen mit jdbc.MaxLimit auf 50 ,jdbc.MinLimit auf 10 ,jdbc.InitialLimit auf 10:
[oracle@apex01:bin ]$ ./ords --config /srv/ords/config/ config set jdbc.MaxLimit 50 ORDS: Release 22.2 Production on Tue Sept 13 16:49:40 2022 Copyright (c) 2010, 2022, Oracle. Configuration: /srv/ords/config/ The setting named: jdbc.MaxLimit was set to: 50 in configuration: default
./ords --config /srv/ords/config/ config set jdbc.MinLimit 10 ./ords --config /srv/ords/config/ config set jdbc.InitialLimit 10
War File unter Tomcat austauschen
War File austauschen als User Tomcat:
#tomcat stoppen! srvctl stop tomcat # ---- cp /srv/ords/ords/ords.war /srv/tomcat/config/webapps/ords.war ls -la /srv/tomcat/config/webapps/ords.war -rw-r--r-- 1 tomcat tomcat 86737998 Sep 13 18:31 /srv/tomcat/config/webapps/ords.war
Config Pfad hinterlegen
Für den Tomcat User für das Manuelle Starten des Tomcat
Als user Tomcat:
su - tomcat vi .bash_profile .. export JAVA_OPTS="-Dconfig.url=/srv/ords/config" ..
Für den Root User für den Tomcat Service
Als User Root die Service Definition von Tomcat anpassen:
vi /etc/systemd/system/tomcat.service .. Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Dconfig.url=/srv/ords/config" ..
Service neu einlesen:
systemctl daemon-reload systemctl stop tomcat.service systemctl start tomcat.service systemctl status tomcat.service
#Log vom ersten Start prüfen
grep ords /srv/tomcat/config/logs/catalina.out 2022-09-13T16:31:24.951Z INFO Deploying web application archive [/srv/tomcat/config/webapps/ords.war] 2022-09-13T16:31:30.059Z INFO Deployment of web application archive [/srv/tomcat/config/webapps/ords.war] has finished in [5,107] ms 13-Sep-2022 18:32:51.444 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dconfig.url=/srv/ords/config 13-Sep-2022 18:32:52.654 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/srv/tomcat/config/webapps/ords.war] config.url=/srv/ords/config 2022-09-13T16:33:00.887Z INFO Deployment of web application archive [/srv/tomcat/config/webapps/ords.war] has finished in [8,234] ms
Rest Service testen und bei Bedarf neu anlegen
Allerdings habe in einer anderen produktiven Umgebung die Services überlebt …
Also nicht vergessen zuvor auch ein Backup zu legen! Sicher ist sicher!
Upgrade von APEX
Software bereitstellen
Aktuelle Version auf den DB Server herunterladen über https://www.oracle.com/tools/downloads/apex-downloads.html
Checksum prüfen und mit der Website vergleichen:
sha256sum apex-latest.zip f3b79cedc8cc0b75a2eb8f5f9d96dbc62ba5104f6e45623235cae460a78b43eb apex-latest.zip
Als User oracle
Falls schon ein Verzeichnis apex exisitert, diese sichern:
su - oracle mv /opt/oracle/product/apex /opt/oracle/product/apex20_1
Auspacken in eine frisches APEX Verzeichnis:
unzip /tmp/apex_latest.zip -d /opt/oracle/product/
Upgrade
# db Umgebung setzen # aus Container DB achten, hier noch eine NON CDB DB! sqlplus / as sysdba # falls cdp richtigen Container setzen! # alter session set container=ans; spool /tmp/install_apex.log select * from DBA_REGISTRY WHERE COMP_ID = 'APEX'; Oracle Application Express 20.2.0.00.20 select patch_version, installed_on from apex_patches; PATCH_VERSION INSTALLED_ON ------------------------------ ---------------------------------------------------------------------------- 2021.03.21 2021-03-27 17:20:43 select username,default_tablespace, temporary_tablespace from dba_users where username like 'APEX_2%'; USERNAME -------------------------------------------------------------------------------------------------------------------------------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE ------------------------------ ------------------------------ APEX_200200 SYSAUX TEMP #@apexins.sql tablespace_apex tablespace_files tablespaces_temp images @apexins.sql SYSAUX SYSAUX TEMP /i/ ... # 20 min später ... spool off exit
Sprachpakete installieren
Soll auch Deutsch in einer APP zum Einsatz kommen das deutsche Sprachpaket installieren, siehe auch APEX Applikation in deutscher Sprache erstellen - Sprachpaket installieren
cd /opt/oracle/product/apex/builder/de export NLS_LANG=American_America.AL32UTF8 sqlplus / AS sysdba -- bei Bedarf Container setzen mit ALTER SESSION SET CONTAINER = FREEDB1; @load_de.sql
Bilder/CSS/JavaScript updaten
die Bilder/JavaScript/CCS Libs liegen unter /srv/apex/images/
als User root
/bin/cp -rf /opt/oracle/product/apex/images/ /srv/apex/
Probleme
Problem 404 Not Found - The procedure named apex could not be accessed
Im Catalina Log:
tail -f /srv/tomcat/config/logs/catalina.out .. ProcedureForbiddenException [statusCode=404, logLevel=INFO, errorCode=ORDS-22001: The procedure named f could not be accessed or found Cause: The procedure may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access Action: Check the spelling of the procedure, check that the execute privilege has been granted to the caller and check the configured security.requestValidationFunction function] ..
Siehe Support Portal : ORDS-22001 After Upgrading Apex And Ords To 22.1 (Doc ID 2881783.1)
SELECT * FROM ords_metadata.plsql_gateway_allow_list; # Zeigt noch auf altes Scheam # #bereinigen mit: BEGIN ords_admin.clear_plsql_gateway_procedures(p_owner => 'APEX_220100'); END; /
als root Tomcat stoppen und neu starten:
systemctl stop tomcat.service systemctl start tomcat.service systemctl status tomcat.service
Funktioniert wieder!
Patch von APEX
Aktuellen Patch laden Patch Set Bundle for Oracle APEX 22.1 ( 34020981) vom Support Portal unter https://support.oracle.com/epmos/faces/PatchDetail?patchId=34020981 .
PSE BUNDLE FOR APEX 22.1 (PSES ON TOP OF 22.1.0) (Patch) p34020981_2210_Generic.zip 1.7 MB (1772530 bytes) SHA-1 6F6325346A8A68DEDEBBE26A8A09DA385A462045 SHA-256 264B5CAAE9BA594CD4E845073792B2B53D3439221E7162284717B5EBE0843007
APEX Patchen
Patch DB:
su - oracle # Upload nach /opt/oracle/install/patch/ sha1sum /tmp/p35895964_2320_Generic.zip f7741994ff1c32b43bade2e48a998b6b3ba60539 p32598392_2110_Generic.zip cp /tmp/p35895964_2320_Generic.zip /opt/oracle/install/patch/ #einspielen als Oracle User und gesetzter Datenbank Umgebung cd /opt/oracle/install/patch/ unzip p35895964_2320_Generic.zip cd 35895964 #DB Umgebung setzen #Zeichensatz setzen export NLS_LANG=American_America.AL32UTF8 #Patch je nach Umgebung einspielen # sqlplus "sys/ as sysdba" @catpatch.sql -- for Oracle Database 12.1 and newer, for non-CDB, for CDB where Oracle APEX is not installed in the root, and for PDB where APEX is not installed in the root # sqlplus "sys/ as sysdba" @catpatch_con.sql -- for CDB where Oracle APEX is installed in the root # sqlplus "sys/ as sysdba" @catpatch_appcon.sql -- for installations where Oracle APEX is installed in an application container # in aktueller Umgebung sqlplus "/ as sysdba" @catpatch.sql sqlplus / as sysdba @?/rdbms/admin/utlrp.sql #Patch Stand prüfen sqlplus / as sysdba select patch_version, installed_on from apex_patches;
Statische Dateien kopieren als root
su - cd /opt/oracle/install/patch/35895964 # mit dem \ orginal cp verwenden und nicht den alias um die Überschreiben nachfrage zu unterdrücken \cp -rf images /srv/apex #Patch Verzeichnis wieder aufräumen rm -rf /opt/oracle/install/patch/35895964
Bei Bedarf das ORDS Public User Passwort setzen
Auf die Zieldatenbank anmelden und das User Passwort setzen:
cd /oracle/product/sqlcl/22.4/bin ./sql "sys@//10.10.10.1:1521/GPIDB as sysdba" ALTER USER ords_public_user IDENTIFIED BY <PASSWORT aus dem Key Pass File >" ACCOUNT UNLOCK;
User prüfen, ob er nicht nach 180 Tagen durch sein Profile nicht nach 180 Tage abläuft!
Password im ORDS Pool hinterlegen mit:
cd /srv/ords/ords/bin ./ords --config /srv/ords/config/ config --db-pool default secret db.password ORDS: Release 22.4 Production on Wed Jan 11 13:10:43 2023 Copyright (c) 2010, 2023, Oracle. Configuration: /oracle/product/ords/config/ Enter the database password: Confirm password: The setting named: db.password was set to: ****** in configuration: default
Netzwerk ACLS auf den neuen APEX Owner umziehen
als sys prüfen was im Einsatz ist:
SELECT * FROM DBA_NETWORK_ACLS JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);
Neu setzen mit z.b. auf den APEX Owner APEX_230200:
BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => '*', ace => xs$ace_type(privilege_list => xs$name_list('connect'), principal_name => 'APEX_230200', principal_type => xs_acl.ptype_db)); END; /
Quellen
Web: