DOAG Datenbank Kolumne: Oracle Autoupgrade 24.7 macht (fast) alles alleine

  • Erstellt von Christian Pfundtner
  • Oracle, Datenbank Kolumne, Oracle, Datenbank

Die Version Autoupgrade 24.7 ist ein großer Schritt in die richtige Richtung, um die Arbeit eines DBAs für das Patching der Datenbanken zu reduzieren.

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

© Gerd Altmann