Patch Download mit dem Autoupgrade Tool

10.
Januar
2025
Veröffentlicht von: Holger Eekhoff

Oracle hat mit der neuen Version des Autoupgrade Tools (Version 24.7 bzw.24.8) das Out-of-place Patching eingeführt. Mit Hilfe dieser Option kann die aktuelle Software (RU-Patch) von Oracle heruntergeladen und ein neues gepatchtes Oracle Home installiert werden. Anschließend kann man Datenbanken stoppen, das ORACLE_HOME umhängen, die DBs starten und patchen lassen. 
Ist auf dem Datenbankserver ein Zugriff auf die Oracle Support Seiten aus möglich (ggf. über einen Proxy), so kann der komplette Vorgang mit Hilfe eines Aufrufes erfolgen. Man kann die obigen Schritte allerdings auch separiert aufrufen und hier kommen wir zu dem spannenden Teil, dem Download von Oracle RU, OPatch, OJVM und den Datapump Patches, oder die Installation eines auf die aktuellste Version gepatches ORACLE_HOME. 
 

Allgemein

Der Download der Oracle Patches beim Oracle Autopatch Tool lässt sich separat aufrufen. Das heißt, man kann den akutellen Patchstand für ein oder mehrere Betriebssysteme auf einem beliebigen Rechner, auch ohne laufende Datenbank herunterladen. Stellt man die heruntergeladenen Patches auf einen Share den Datenbank-Servern zur Verfügung, so können dort in einem weiteren Schritt mit dem Autoupgrade Tool neue Oracle Homes erstellt und Datenbanken gepatcht werden.
Mit dem Autoupgrade Tool lässt sich die Suche nach Patch-Nummern zum Teil umgehen. Benutzt man die Default Option RECOMMENDED, so werden Oracle Database Release Updates (RU) bzw. Windows Database Bundle Patch (BP), OPatch, OJVM und der DataPump Bundle Patch automatisch in der aktuellsten Version heruntergeladen. Somit muss nur noch auf der Support Seite:
Oracle Database 19c Important Recommended One-off Patches (Doc ID 555.1) 
nachgesehen werden, ob es weitere Single Patche gibt deren Download erforderlich sein könnten.

Im Folgenden möchten wir uns auf den Download der Patches von einem nicht Datenbank-Rechner aus konzentrieren, da bei Kunden z. B. auf den Datenbank Servern der Zugriff auf das Internet beschränkt oder nicht möglich ist oder der Kunde mehrere Datenbank-Systeme besitzt und nicht für jede zu patchende DB ein weiterer Download erfolgen soll. Es gibt auch Firmen, die ihre Oracle Datenbanken auf unterschiedlichen Betriebssystemen laufen lassen, sprich der Download der Patches für mehrere OS notwendig sein kann. 

Die Installation des Oracle Home sowie das eigentliche Out-of-place Patching behandeln wir in diesem Artikel nicht, diesen werden wir in einem späteren Monatstipp beschreiben (bis dahin wird vielleicht auch das Out-of-place Patching von RAC- Datenbanken supported).

Einschränkungen

Derzeit ist der automatische Download der Patches mit dem Autoupgrade Tool (Version 24.8) nur für Single Instance Datenbanken der Version 19 (19.13 bis 19.25) für die Betriebssysteme Linux-x64 und Windows-x64 möglich. Laut Mike Dietrich und Rodrigo Jorge sollen weitere OS (AIX, Solaris, ARM) mit der nächsten Autoupgrade Version(en) folgen. Die Oracle Versionen 21 und 23ai stehen ebenfalls in der Pipeline und der Support für die Grid-Infrastructure sprich für RAC-Datenbanken ist auch angedacht.

Voraussetzungen

  • Client mit OS: Linux / MacOS / Windows 

  • aktuelle Java Version (z. B. aus einem 19er RDBMS oder Client  ORACLE_HOME)

  • Zugriff auf die Oracle Support Website: support.oracle.com

  • My Oracle Support (MOS) Zugang

  • Ein Wallet in dem ein MOS Zugang hinterlegt wird (wird einmalig erstellt)  

Vorbereitungen

Zunächst muss die aktuelle autopatch.jar Datei bei Oracle heruntergeladen werden. Da die aktuelle Version neben support.oracle.com jetzt auch im frei verfügbaren Bereich download.oracle.com bereit steht, kann wget mit einem einfachen Pfad ohne MOS-Login verwendet werden.

Windows Power Shell:

mkdir S:\Oracle\Database\autoupgrade
cd S:\Oracle\Database\autoupgrade
wget download.oracle.com/otn-pub/otn_software/autoupgrade.jar -o autoupgrade.jar


Linux / MacOS Terminal:

mkdir /u01/app/stage/autoupgrade
cd /u01/app/stage/autoupgrade
wget download.oracle.com/otn-pub/otn_software/autoupgrade.jar


Erstellen einiger Unterverzeichnisse:

mkdir keystore              # Verzeichnis in dem das Wallet angelegt wird  
mkdir patches               # Verzeichnis in dem die Patches abgelegt werden

# sollen fuer unterschiedliche Betriebsysteme die Patches heruntergeladen werden, 
# pro OS ein Unterverzeichnis anlegen:
mkdir -p patches/windows    # Verzeichnis in dem die Patches fuer Windows abgelegt werden
mkdir -p patches/linux      # Verzeichnis in dem die Patches fuer Linux abgelegt werden
# sowie pro OS ein Dummy-ORACLE_HOME:
mkdir -p dummy/home_windows # dummy Verzeichnis, wird nur bei der Parameter Validierung 
mkdir -p dummy/home_linux   # durch das autoupgrade Tool benoetigt  


Kurzer Test, ob die Version des Autoupgrade Tool aktuell ist:

PS S:\Oracle\Database\autoupgrade> C:\Oracle\Client19\jdk\bin\java -jar autoupgrade.jar -version

build.version 24.8.241119
build.date 2024/11/19 12:49:28 -0500
build.hash b404cf007
build.hash_date 2024/11/18 14:39:19 -0500
build.supported_target_versions 12.2,18,19,21,23
build.type production
build.label (HEAD, tag: v24.8, origin/stable_devel, stable_devel)
build.MOS_NOTE 2485457.1
build.MOS_LINK support.oracle.com/epmos/faces/DocumentDisplay

PS S:\Oracle\Database\autoupgrade>

 

Konfigurationsfile

Für den Download der Patches muss eine Konfigurationsdatei erstellt werden, welche mindestens die Target Version sowie Pfadangaben zu den Log-Files, dem Wallet und dem Speicherort der Patches enthält. Wird keine Plattform angegeben so erfolgt der Download der Patches für das OS unter dem das autoupgrade Tool aufgerufen wird.

Eine Minimal-Konfiguration würde somit wie folgt aussehen:

global.global_log_dir=<log-directory>
global.keystore=<wallet-directory>
download.folder=<patch-directory>
download.target_version=19


Beispiele:

Configfile für den Download der aktuellen Oracle Patches für Windows auf einem Windows Client download_win.cfg:

global.global_log_dir=S:\Oracle\Database\autoupgrade\logs
global.keystore=S:\Oracle\Database\autoupgrade\keystore
#
download_windows.folder=S:\Oracle\Database\autoupgrade\patches\windows
download_windows.patch=RECOMMENDED
download_windows.target_version=19
download_windows.platform=windows.x64
download_windows.download=yes


Configfile für den Download der aktuellen Oracle Patches für Linux auf einem Linux / MacOS Client download_lin.cfg:

global.global_log_dir=/u01/app/stage/autoupgrade/logs
global.keystore=/u01/app/stage/autoupgrade/keystore
#
download_linux.folder=/u01/app/stage/autoupgrade/patches/linux
download_linux.patch=RECOMMENDED 
download_linux.target_version=19
download_linux.platform=linux.x64
download_linux.download=yes


Configfile für den Download des RU der Version 19.20 für Linux und des bzw. WIN BP der Version 19.20 für Windows auf einem Windows Client 
download_lin_win.cfg:

global.keystore=S:\Oracle\Database\autoupgrade\keystore
#
download_windows.target_home=S:\Oracle\Database\autoupgrade\dummy\home_windows   download_windows.folder=S:\Oracle\Database\autoupgrade\patches\windows
download_windows.patch=RU:19.20,OPATCH
download_windows.target_version=19
download_windows.platform=windows.x64
download_windows.download=yes

download_linux.target_home=S:\Oracle\Database\autoupgrade\dummy\home_linux   download_linux.folder=S:\Oracle\Database\autoupgrade\patches\linux
download_linux.patch=RU:19.20,OPATCH
download_linux.target_version=19
download_linux.platform=linux.x64
download_linux.download=yes


Achtung!
Sollen für unterschiedliche Betriebssysteme in einem Durchgang die Patches heruntergeladen werden, so ist als zusätzlicher Parameter pro OS ein „target_home“ zu definieren. Das jeweilige „target_home“ wird beim Download nicht verwendet es kann somit ein Dummy-Pfad angegeben werden. Die Verzeichnisse müssen jedoch auf dem Rechner, auf dem der Download gestartet wird, existieren.


Für den Download wichtige Parameter:

 Parameter  Wert  Beschreibung
 global.global_log_dir   <Verzeichnis> In dem Log-Dateien abgelegt werden 
 global.keystore  <Verzeichnis> In dem das Wallet mit dem MOS-Zugang liegt
 *.folder  <Verzeichnis> In dem die Patches gespeichert werden
 *.patch  [RECOMMENDED]
 [RU], [RU:x.y], [OPATCH], [OJVM], [OJVM:x.y], [DPBP], [patch-number] 
Entweder RECOMMENDED entspricht der aktuellsten Version von RU, OPATCH, OJVM und DBBP oder einer beliebigen Auflistung der Einzelkomponenten siehe unten
 *.plattform  [linux.x64]
 [windows.x64]
Derzeit ist der Download nur für Linux und Windows möglich, weitere OS sollen mit der nächsten autoupgrade Version folgen.
Der Parameter ist nur notwendig, wenn der Download nicht für das OS erfolgen soll auf dem autoupgrade ausgeführt wird!
 *.target_version  19 Derzeit ist nur 19 erlaubt, die Versionen 21 und 23 sollen mit nächster autoupgrade Version folgen
 *.download  [YES|NO] Gibt an, ob die Patches heruntergeladen werden sollen; da default=YES ist muss der Parameter nicht zwingend angegeben werden



Derzeit müssen bei *.patch immer RU (evtl. mit Versionsangabe) und OPatch angegeben werden, ansonsten wird der Download mit Fehler abgebrochen. Ist der angegebene Patch in dem entsprechenden Download-Verzeichnis jedoch vorhanden wird dieser nicht erneut geladen. Wird eine zusätzliche Patch Nummer angegeben so prüft Oracle ob diese für die entsprechende RU-Version vorhanden ist, falls nicht, wird der Download ebenfalls mit Fehler beendet.


Beispiele für *.patch:

Download des aktuellsten RU und dem aktuellen OPATCH:
patch=RU,OPATCH

Download des RU mit der Version 19.22 und des aktuellen OPATCH:
patch=RU:19.22,OPATCH

Download des RU mit der Version 19.23, dem zu der Version 19.23 gehörendem Datapump Bundle Patch sowie des aktuellen OPATCH:
patch=RU:19.23,OPATCH,DPBP

Download des RU mit der Version 19.24, des aktuellen OPATCH und dem Single Patch 35197819:
patch= RU:19.24,OPATCH,35197819

In der nächsten autoupgrade Version soll der Download eines Single Patches für die aktuellste RU-Version auch ohne RU und OPATCH möglich sein.
(patch=35197819)  

Erstellen eines Wallet mit MOS Zugangsdaten

Um die Patches von support.oracle.com herunterladen zu können muss „einmalig“ ein Wallet erstellt werden, in dem die MOS Zugangsdaten hinterlegt werden. Der Zugriff auf das Wallet wiederrum wird durch ein Passwort geschützt (mind. acht Zeichen incl. Kombination von Buchstaben und Zahlen oder Sonderzeichen).

Achtung! 
Wird beim Erstellen des Wallet die auto-login Option aktiviert, kann jeder, der Zugriff auf die Datei mit den hinterlegten MOS Zugangsdaten hat, Patches herunterladen. Ein personalisierter Zugriff bei einem größeren DBA-Team kann nur über separate, personalisierte Wallets erfolgen, sprich pro DBA müsste eine Konfigurationsdatei erstellt werden, bei dem Parameter global.keystore auf ein Verzeichnis des entsprechenden Mitarbeiters verwiesen werden und der Mitarbeiter müsste dann in dem Verzeichnis sein Wallet mit seinem MOS-Zugang erstellen.

Erstellen des Wallet incl. Vergabe des PW für das Wallet:  

PS U:\> cd S:\Oracle\Database\autoupgrade

PS S:\Oracle\Database\autoupgrade> C:\Oracle\Client19\jdk\bin\java -jar autoupgrade.jar -config download_win.cfg -patch -load_password

Processing config file ...

Starting AutoUpgrade Patching Password Loader - Type help for available options
Creating new AutoUpgrade Patching keystore - Password required
Kennwort eingeben:
Kennwort erneut eingeben:
AutoUpgrade Patching keystore was successfully created

MOS>


Einbinden der MOS Zugangsdaten (E-Mail Adresse und Passwort mit dem man sich bei support.oracle.com anmelden kann):

MOS>
MOS> add -user deep.thougth@die-antwort-lautet-42.universe
Geben Sie Ihren Schlüssel/Ihr Kennwort ein: xxxxxxxx
Geben Sie Ihren Schlüssel/Ihr Kennwort erneut ein: xxxxxxxx
MOS>

  • Speichern der Anpassungen 
  • Entscheiden ob ein auto-login möglich sein soll oder nicht 
  • Beenden

Wird auto-login deaktiviert, muss später bei jedem Download Aufruf das Wallet-Passwort eingegeben werden:

MOS> 
MOS> save
Convert the AutoUpgrade Patching keystore to auto-login [YES|NO] ? no
MOS> 
MOS> exit

AutoUpgrade Patching Password Loader finished - Exiting AutoUpgrade Patching


Download

Jetzt zum eigentlichen Download der Patches mit dem Oracle autoupgrade Tool. 

Download der Oracle Patche für Windows auf einem Windows Client:

PS S:\Oracle\Database\autoupgrade> C:\Oracle\Client19\jdk\bin\java -jar autoupgrade.jar -config download_win.cfg  -patch -mode download

AutoUpgrade Patching 24.8.241119 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore was successfully loaded

Connected to MOS - Searching for specified patches

-------------------------------------------------------------------
Downloading files to S:\Oracle\Database\autoupgrade\patches\windows
-------------------------------------------------------------------
WINDOWS DATABASE BUNDLE PATCH 19.25.0.0.241015
    File: p36878821_190000_MSWIN-x86-64.zip - VALIDATED

TRACKING BUG FOR 19.25.0.0.0 DATAPUMP BUNDLE PATCH FOR WINDOWS
    File: p37169610_1925000_MSWIN-x86-64.zip - VALIDATED

OJVM RELEASE UPDATE 19.25.0.0.0
    File: p36878697_190000_MSWIN-x86-64.zip - VALIDATED

OPatch 12.2.0.1.44 for DB 19.0.0.0.0 (Oct 2024)
    File: p6880880_190000_MSWIN-x86-64.zip - LOCATED
-------------------------------------------------------------------

PS S:\Oracle\Database\autoupgrade>

Im Output des Aufrufs finden wir die heruntergeladen Patches incl. Version, Dateiname und Pfad.
Bei bereits heruntergeladenen Patches wechselt der „Status“ von „VALIDATED“ auf „LOCATED“ d. h. die Patche werden nicht überschrieben oder weitere Kopien heruntergeladen.

Download der Oracle Patche für Linux auf einem Linux Client:

oracle@tl1903:/u01/app/stage/autoupgrade]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -config download_min.cfg -patch  -mode download

AutoUpgrade Patching 24.8.241119 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore was successfully loaded

Connected to MOS - Searching for specified patches

-------------------------------------------------------------
Downloading files to /u01/app/stage/autoupgrade/patches/linux
-------------------------------------------------------------
DATABASE RELEASE UPDATE 19.25.0.0.0
    File: p36912597_190000_Linux-x86-64.zip - LOCATED

DATAPUMP BUNDLE PATCH 19.25.0.0.0
    File: p37056207_1925000DBRU_Generic.zip - LOCATED

OJVM RELEASE UPDATE 19.25.0.0.0
    File: p36878697_190000_Linux-x86-64.zip - LOCATED

OPatch 12.2.0.1.44 for DB 19.0.0.0.0 (Oct 2024)
    File: p6880880_190000_Linux-x86-64.zip - LOCATED
-------------------------------------------------------------

[oracle@tl1903:/u01/app/stage/autoupgrade]$


Download des RU der Version 19.20 für Linux und des Windows BP der Version 19.20 auf einem Windows Client:

PS S:\Oracle\Database\autoupgrade> C:\Oracle\Client19\jdk\bin\java -jar autoupgrade.jar -config download_lin_win.cfg  -patch -mode download

AutoUpgrade Patching 24.8.241119 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore was successfully loaded

Connected to MOS - Searching for specified patches

-------------------------------------------------------------------
Downloading files to S:\Oracle\Database\autoupgrade\patches\windows
-------------------------------------------------------------------
WINDOWS DATABASE BUNDLE PATCH 19.20.0.0.230718
    File: p35348034_190000_MSWIN-x86-64.zip - VALIDATED

OPatch 12.2.0.1.44 for DB 19.0.0.0.0 (Oct 2024)
    File: p6880880_190000_MSWIN-x86-64.zip - LOCATED
-------------------------------------------------------------------


Connected to MOS - Searching for specified patches

-----------------------------------------------------------------
Downloading files to S:\Oracle\Database\autoupgrade\patches\linux
-----------------------------------------------------------------
DATABASE RELEASE UPDATE 19.20.0.0.0
    File: p35320081_190000_Linux-x86-64.zip - VALIDATED

OPatch 12.2.0.1.44 for DB 19.0.0.0.0 (Oct 2024)
    File: p6880880_190000_Linux-x86-64.zip - LOCATED
-----------------------------------------------------------------

PS S:\Oracle\Database\autoupgrade>


Configfile für den Download des sigle Patch 35197819 für die Oracle Version 19.13 für Linux auf einem Windows Client
download_single.cfg:

global.global_log_dir=S:\Oracle\Database\autoupgrade\logs
global.keystore=S:\Oracle\Database\autoupgrade\keystore
download_linux.folder=S:\Oracle\Database\autoupgrade\patches\linux
download_linux.patch=RU:19.13,OPATCH,35197819
download_linux.target_version=19
download_linux.platform=linux.x64
download_linux.download=yes


Der Versuch des Single Patch 35197819 download, der nicht existiert, scheitert mit dem Hinweis „none being found“:

PS S:\Oracle\Database\autoupgrade> C:\Oracle\Client19\jdk\bin\java -jar autoupgrade.jar -config download_single.cfg  -patch -mode download

AutoUpgrade Patching 24.8.241119 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore was successfully loaded

Connected to MOS - Searching for specified patches

There were conditions found preventing AutoUpgrade Patching from successfully running

*Downloading Oracle Patch files
Query for bug 35197819 resulted in none being found

PS S:\Oracle\Database\autoupgrade>


Anpassen der Version 19.13 nach 19.25
download_single.cfg:

global.global_log_dir=S:\Oracle\Database\autoupgrade\logs
global.keystore=S:\Oracle\Database\autoupgrade\keystore
download_linux.folder=S:\Oracle\Database\autoupgrade\patches\linux
download_linux.patch=RU:19.25,OPATCH,35197819
download_linux.target_version=19
download_linux.platform=linux.x64
download_linux.download=yes


Download des Single Patch 35197819, für die Version 19.25. 
Das auto-login wurde im Wallet zwischenzeitlich deaktiviert, somit muss beim Download das Wallet-Passwort eingegeben werden. 

PS S:\Oracle\Database\autoupgrade> C:\Oracle\Client19\jdk\bin\java -jar autoupgrade.jar -config download_single.cfg  -patch -mode download

AutoUpgrade Patching 24.8.241119 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
Wallet-Kennwort eingeben: xxxxxxxx
AutoUpgrade Patching keystore was successfully loaded

Connected to MOS - Searching for specified patches

-----------------------------------------------------------------
Downloading files to S:\Oracle\Database\autoupgrade\patches\linux
-----------------------------------------------------------------
DATABASE RELEASE UPDATE 19.25.0.0.0
    File: p36912597_190000_Linux-x86-64.zip - LOCATED

OPatch 12.2.0.1.44 for DB 19.0.0.0.0 (Oct 2024)
    File: p6880880_190000_Linux-x86-64.zip - LOCATED

CSSD.BIN LEAKING MEMORY ON 19.17 RU
    File: p35197819_1925000DBRU_Linux-x86-64.zip - VALIDATED
-----------------------------------------------------------------

PS S:\Oracle\Database\autoupgrade>



Fazit

Hat man einmalig ein Wallet mit den MOS Zugangsdaten sowie ein oder mehrere Konfigurationsdateien für den Download der Oracle Patche erstellt, so lassen sich mit dem Oracle autoupgrade Tool die aktuellen Versionen leicht, schnell und für mehrere Betriebssysteme von support.oracle.com herunterladen.
Die Installation des neuen gepatchen ORACLE_HOME sowie das eigentliche Out-of-place Patching wird in folgenden Monats Tipps beschrieben 

to be continued  
 

Links und eitere Informationen

Oracle Online Dokumentation zum autoupgrade Tool:
https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/autoupgrade-patching.html

Mike Dietrich's Blog About Oracle Database Upgrades:
https://mikedietrichde.com/2024/11/21/download-autoupgrade-directly-from-oracle-com/
https://mikedietrichde.com/2024/10/28/autoupgrades-patching-the-feature-you-waited-for/
https://mikedietrichde.com/2024/11/26/autoupgrade-24-8-has-been-released-adding-ms-windows-patching-support/

DBA - Rodrigo Jorge - Oracle Tips and Guides
https://www.dbarj.com.br/en/2024/11/downloading-oracle-patches-using-cli-with-autoupgrade-patching/

Daniel Overby Hansen: Databases Are Fun: “Patch your database like a hero”
https://dohdatabase.com/wp-content/uploads/2024/11/2024_11_21_doag_patching.pdf

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.