Oracle Autoupgrade 24.7 macht (fast) alles alleine

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 zur Verfügung, andere Plattformen müssen noch etwas warten. Für Windows x86_64 wird diese Funktionalität in den nächsten Tagen verfügbar sein. Auf Linux ARM – und anderen Plattformen – scheitert mit folgendem Fehler:

Validating Oracle Patch files
No usable base image was found in /home/oracle/autoupgrade_patchdir. Download the 19.3 base image (LINUX.X64_193000_db_home.zip) from https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html

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ültigen Logindaten für support.oracle.com mit der Berechtigung Patches herunter zu laden. Diese Logindaten werden in einem Wallet gespeichert, das auf Wunsch auch mit einem Autologin versehen werden kann (das 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 RU´s! Selbstverständlich kann auch OPatch, DataPump Patches sowie beliebige one-off Patches automatisch installiert werden.

Vorbereitungen (optional)

Beim Out-of-Place Patching gibt es immer wieder die Herausforderungen, dass beim Patching – wenn man nicht darauf achtet – Einstellungen verloren gehen. Dabei handelt es sich um:

  • Oracle dNFS
  • nur Unified Audit
  • Read Only Oracle Home (rooh)
  • chopt Konfiguration

Es ist somit eine gute Möglichkeit zu prüfen, ob autopatch 24.7 diese Einstellungen entsprechend erkennt und korrekt konfiguriert. Für diese Vorbereitungen darf keine Oracle Datenbank Instance in diesem Oracle Home laufen!

Hinweis: Damit autoupgrade funktioniert, muss die Datenbank im ARCHIVELOG Modus sein und eine Flash Recovery Area konfiguriert haben (für die GRP – Garantierten Restore Points).

Oracle dNFS und Unified Audit linken

Hinweise: die Outputs vom make sind hier aus Lesbarkeitsgründen nicht enthalten.

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk dnfs_on
make -f ins_rdbms.mk uniaud_on ioracle

Überprüfung:

sqlplus / as sysdba

-- sofern Datenbankfiles auf NFS liegen
select SVRNAME, DIRNAME from v$dnfs_servers;

-- Unified Audit only
select parameter, value from v$option where parameter = 'Unified Auditing';

PARAMETER                      VALUE
------------------------------ ----------
Unified Auditing               TRUE

Read Only Oracle Home konfigurieren

roohctl -enable

Enabling Read-Only Oracle home.
Cannot enable Read-Only Oracle home in a configured Oracle home.
The Oracle Home is configured with databases 'DB19EE'.

chopt Konfiguration

Mit chopt kann man Optionen aus der Datenbank „entfernen“.

chopt

options:
                 oaa = Oracle Advanced Analytics
                olap = Oracle OLAP
        partitioning = Oracle Partitioning
                 rat = Oracle Real Application Testing

Hinweise:

  • Oracle Advanced Analytics ist Teil von Machine Learning und inzwischen in allen Editionen kostenlos nutzbar.
  • Oracle OLAP ist seit Sommer 2024 deprecated und sollte nicht mehr genutzt werden.
  • Partitioning darf seit Oracle 12.2 nicht mehr deaktiviert werden, sonst gibt es Probleme mit Unified Audit!

Somit deaktivieren wir jene Features, die wir nicht nutzen wollen (olap und rat):

chopt disable olap
chopt disable rat

Überprüfung:

sqlplus / as sysdba

-- OLAP
select parameter, value from v$option where parameter = 'OLAP';

PARAMETER                      VALUE
------------------------------ ----------
OLAP                           FALSE

-- RAT
select parameter, value from v$option where parameter = 'Real Application Testing';

PARAMETER                      VALUE
------------------------------ ----------
Real Application Testing       FALSE

Jetzt muss man die entsprechenden Datenbanken wieder starten, damit Autoupgrade seine Arbeit erledigen kann.

Aktuelles Autoupgrade herunterladen

Seit kurzem kann man Autoupgrade – ohne Anmeldung – direkt herunterladen:

# vorhandenes Autoupgrade löschen
rm autoupgrade.jar
# aktuelles Autoupgrade herunterladen
wget https://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 RU´s verifiziert werden kann. Möchte man den aktuellsten 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 bereit stellen. 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 https://support.oracle.com/epmos/faces/DocumentDisplay?id=2485457.1

MOS Credentials anlegen (einmal pro Server)

Damit Autoupgrade die gewünschten Patches herunterladen kann, muss man die MOS (My Oracle Support) Zugangsdaten 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

Hinweis: Sollte man folgenden Fehler bekommen, so ist auf dem Server eine nicht unterstützte Java Version installiert. Am Besten einfach die Java Version aus dem Oracle Home nutzen.

java -jar autoupgrade.jar -patch -config db19ee.cfg -load_password
Unsupported Java Runtime Environment 17 AutoUpgrade Patching must run with Java version 11

Beispiel für den Aufruf mit dem Java aus dem ORACLE_HOME der Datenbank:

$ORACLE_HOME/jdk/bin/java -jar ./autoupgrade.jar -patch -config db19ee.cfg -load_password

Out-of-Place Patching mit download 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 inkl. RU und DataPatch dauerte knapp 16 Minuten. Für das Patchen der Datenbank mit allen Optionen braucht es etwas über 10 Minuten.

Nacharbeiten

Zuerst das root.sh durchführen

su -
/u01/app/oracle/product/19.24.0/root.sh
exit

Den garantierten Restore Point löschen

Den Name des Restore Points findet man im Output vom Autoupgrade sowie in V$RESTORE_POINT.

sqlplus / as sysdba

select RESTORE_POINT_TIME from v$restore_point;

drop restore point AU_PATCHING_9212_DB19EE1918000;
exit;

Prüfen, ob die „relinkten“ Einstellungen im Oracle Executable korrekt sind

sqlplus / as sysdba

-- sofern Datenbankfiles auf NFS liegen
select SVRNAME, DIRNAME from v$dnfs_servers;

-- Unified Audit only
select parameter, value from v$option where parameter = 'Unified Auditing';

PARAMETER                      VALUE
------------------------------ ----------
Unified Auditing               FALSE

-- OLAP
select parameter, value from v$option where parameter = 'OLAP';

PARAMETER                      VALUE
------------------------------ ----------
OLAP                           TRUE

-- RAT
select parameter, value from v$option where parameter = 'Real Application Testing';

PARAMETER                      VALUE
------------------------------ ----------
Real Application Testing       TRUE

Leider nein, alle Einstellungen sind DEFAULT. Somit muss man gut dokumentieren,
welche Optionen man hier genutzt hat und diese entsprechend wieder einrichten (Datenbanken müssen dazu down sein!).

Beispielsweise:

  • Oracle dNFS Support
  • Unified Audit only
  • chopt Einstellungen
  • Read Only Oracle Home

Referenzen und weiterführende Informationen

Autoupgrade wird aktuell alle paar Monate aktualisiert. Nicht jede Aktualisierung enthält auch Neuheiten, manches mal sind es lediglich Bugfixes. Die aktuellen Versionen von Autoupgrade findet man im MOS Dokument AutoUpgrade Tool (Doc ID 2485457.1). Hier gibt es auch die Dokumentation sowie ein Changelog, in dem alle Features und Bugfixes der jeweiligen Version dokumentiert sind.