Mit dieser Version kann man mittels Autoupgrade alle benötigten Patches direkt herunterladen und in einem neuen Oracle Home für Out-of-place Patching installieren lassen. Dafür ist natürlich der Zugriff auf MOS (my Oracle Support) mit einem Account, mit dem man Patches downladen darf, notwendig.
Hinweis: Aktuell steht diese neue Funktionalität nur für Linux x86_64 und Windows x84_64 zur Verfügung, andere Plattformen müssen noch etwas warten.
Wie sieht das im Detail aus?
Wenn ein Datenbank Server (beispielsweise über einen Proxy) direkt ins Internet kommt (Oracle spezifiziert, welche URLs erreichbar sein müssen), kann Autoupgrade alle benötigten Patches selbstständig herunterladen und damit ein neues Oracle Home für Out-of-Place Patching installieren/konfigurieren. In Autoupgrade 24.7 muss man allerdings die Basisversion – zum Beispiel: 19.3 für Linux x86_64 – noch selbst bereit stellen. In Zukunft wird das nicht mehr notwendig sein. Für den Download benötigt man gültige Logindaten für support.oracle.com mit der Berechtigung Patches herunterzuladen. Diese Logindaten werden in einer Wallet gespeichert, die auf Wunsch auch mit einem Autologin versehen werden kann (die Wallet wird dann bei Bedarf automatisch geöffnet). Hat der Datenbank-Server keinen Internetzugriff, kann man die Software selbstverständlich selbst herunterladen und in einem Verzeichnis stagen. Autoupgrade kann dann diese Software nutzen. Man kann diese beiden Funktionalitäten auch kombinieren, damit man die Software nicht für jeden Server neu herunterladen muss. Am ersten Server lässt man Autoupgrade alles selbst herunterladen und kopiert das Verzeichnis dann auf alle anderen Server (oder stellt die Software auf einem Netzwerklaufwerk zur Verfügung). Autoupgrade unterstützt dabei nicht nur RUs! Selbstverständlich können auch OPatch, DataPump Patches sowie beliebige one-off Patches automatisch installiert werden.
- Aktuelles Autoupgrade herunterladen
```bash
# vorhandenes Autoupgrade löschen
rm autoupgrade.jar
# aktuelles Autoupgrade herunterladen
wget download.oracle.com/otn-pub/otn_software/autoupgrade.jar
```
- Autoupgrade Configfile für Datenbank DB19EE und Verzeichnisse anlegen
Hinweis: Aktuell gibt es schon den RU 19.25. Es wurde aber absichtlich nur 19.24 genutzt, damit auch die Funktionalität der Auswahl bestimmter RUs verifiziert werden kann. Möchte man den aktuellen RU nutzen, entfallen einfach die Versionsnummern in der Zeile mit "patch".
```
$ cat db19ee.cfg
global.global_log_dir=/u01/app/oracle/cfgtoollogs/autoupgrade
global.keystore=/u01/app/oracle/cfgtoollogs/autoupgrade_keystore
upg1.sid=DB19EE
upg1.source_home=/u01/app/oracle/product/19.3.0
upg1.target_home=/u01/app/oracle/product/19.24.0
upg1.folder=/home/oracle/autoupgrade_patchdir
upg1.patch=RU:19.24,OPATCH,OJVM:19.24,DPBP
upg1.download=YES
```
Hinweis: Wenn die Software bereits heruntergeladen ist, muss man "download=YES" auf "download=NO" ändern.
Sofern noch nicht gemacht, muss man jetzt die benötigten Verzeichnisse anlegen:
```
mkdir -p /u01/app/oracle/product/19.24.0
mkdir -p /u01/app/oracle/cfgtoollogs/autoupgrade
mkdir -p /u01/app/oracle/cfgtoollogs/autoupgrade_keystore
mkdir -p /home/oracle/autoupgrade_patchdir
```
Mit Autoupgrade 24.7 muss man die Basisversion der Oracle-Software im dem angegebenen Verzeichnis "folder=/home/oracle/autoupgrade_patchdir" bereitstellen. In Zukunft soll das nicht mehr notwendig sein.
```
$ ls /home/oracle/autoupgrade_patchdir
LINUX.X64_193000_db_home.zip
```
- Autoupgrade Version prüfen
Zur Sicherheit überprüfen, ob die benötigte autoupgrade Version tatsächlich vorliegt:
```
$ java -jar ./autoupgrade.jar -version
build.version 24.7.241021
build.date 2024/10/21 11:16:20 -0400
build.hash babf5a631
build.hash_date 2024/10/18 18:36:27 -0400
build.supported_target_versions 12.2,18,19,21,23
build.type production
build.label (HEAD, tag: v24.7, origin/stable_devel, stable_devel)
build.MOS_NOTE 2485457.1
build.MOS_LINK support.oracle.com/epmos/faces/DocumentDisplay
```
- MOS Credentials anlegen (einmal pro Server)
Damit Autoupgrade die gewünschten Patches herunterladen kann, muss man die Zugangsdaten für MOS (My Oracle Support) für einen Benutzer hinterlegen, der Patches herunterladen darf.
Als erstes muss man ein Passwort für den Keystore angeben (und sich merken!). Ist dieses nicht komplex genug, bekommt man den Fehler "PKI-01002" wie in diesem Beispiel. Danach mittels "add -user" den Benutzer für das Patch-Download anlegen und mittels "list" überprüfen, ob dies erfolgreich war. Beim Aussteigen mittels "exit" wird man gefragt, ob man den Keystore speichern will und ob ein Auto-Login-File generiert werden soll. Beides bitte mit "yes" beantworten.
```
java -jar autoupgrade.jar -patch -config db19ee.cfg -load_password
Processing config file ...
Starting AutoUpgrade Patching Password Loader - Type help for available options
Creating new AutoUpgrade Patching keystore - Password required
Enter password:
PKI-01002: Invalid password. Passwords must have a minimum length of eight characters and contain alphabetic characters combined with numbers or special characters.
Enter password:
Enter password again:
AutoUpgrade Patching keystore was successfully created
MOS> add -user xxx@dbmasters.at
Enter your secret/Password:
Re-enter your secret/Password:
MOS> list
MOS Credentials Loaded - Connection Successful
MOS> exit
Save the AutoUpgrade Patching keystore before exiting [YES|NO] ? yes
Convert the AutoUpgrade Patching keystore to auto-login [YES|NO] ? yes
AutoUpgrade Patching Password Loader finished - Exiting AutoUpgrade Patching
```
- Autoupgrade durchführen
Der Output wurde aus Lesbarkeitsgründen gekürzt.
```
$ORACLE_HOME/jdk/bin/java -jar ./autoupgrade.jar -patch -config db19ee.cfg -mode deploy
AutoUpgrade Patching 24.7.241021 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/download
--------------------------------------------
DATABASE RELEASE UPDATE 19.24.0.0.0
File: p36582781_190000_Linux-x86-64.zip - VALIDATED
DATAPUMP BUNDLE PATCH 19.24.0.0.0
File: p36682332_1924000DBRU_Generic.zip - VALIDATED
OJVM RELEASE UPDATE 19.24.0.0.0
File: p36414915_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 - VALIDATED
--------------------------------------------
+-----------------------------------------+
| Starting AutoUpgrade Patching execution |
+-----------------------------------------+
1 Non-CDB(s) will be processed
patch> Job 100 completed
------------------- Final Summary --------------------
| Number of databases | [ 1 ] |
| Jobs finished | [ 1 ] |
| Jobs failed | [ 0 ] |
| Jobs restored | [ 0 ] |
| Jobs pending | [ 0 ] |
---- Drop GRP at your convenience once you consider it is no longer needed ----
Drop GRP from DB19EE: drop restore point AU_PATCHING_9212_DB19EE1918000
Please check the summary report at:
/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/patch/auto/status/status.html
/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/patch/auto/status/status.log
```
Laufzeit (inkl. Download) betrug ca. 40 Minuten, wobei der Download selbst knapp 15 Minuten gedauert hat.
Die Installation des Oracle Homes inklusive RU und DataPatch dauerte knapp 16 Minuten. Für das Patchen der Datenbank mit allen Optionen braucht es etwas über 10 Minuten.
- Nacharbeiten und Pitfalls
Auch wenn diese neue Funktionalität ein riesiger Schritt in die richtige Richtung darstellt, gibt es noch einige Punkte, die man beachten muss. Beispielsweise:
- Löschen des Garantierten Restore Points nach dem erfolgten Upgrade
- Ausführen von root.sh
- Rekonfigurieren von dNFS, Unified Audit, chopt-Einstellungen und vieles mehr
Weitere Details zu Autoupgrade und was noch zu beachten ist, wird im Blog "Oracle Autoupgrade 24.7 macht (fast) alles alleine" beschrieben.
Die DOAG DB WebSession am 14. Februar behandelt das Thema ausführlich und detailliert.
Christian Pfundtner


