Logo Oracle Deutschland   DBA Community  -  März 2015
OPlan - Oracle Patches richtig anwenden
von Sebastian Solbach ORACLE Deutschland B.V. & Co.KG

Wer kennt es nicht: Ein Vierteljahr ist vergangen und Oracle hat das nächste Patch Set Update (kurz PSU) für die Datenbank veröffentlicht. Wie jedes mal stellen sich dem DBA folgende Fragen: Wie war das noch einmal mit dem Patchen? Muss dafür jetzt OPatch als Oracle Benutzer verwendet werden? Oder doch besser OPatchauto aufrufen als root Administrator? Wie funktioniert "Rolling Patch" im RAC? Muss es eigentlich immer ein Knoten nach dem anderen sein? Ausserdem: Neuerdings gibt es ja auch den PSU mit Java - der kann nicht während des laufenden Betriebs eingespielt werden, oder? Wie patcht man jetzt am Besten?

Normalerweise steht dann erst mal das Lesen des Patch READMEs an. Aber gerade hier werden, der Vollständigkeit wegen, alle unterschiedlichen Optionen erwähnt, so dass man sich auch nach dem Studium des READMEs nicht ganz sicher ist, welcher Weg denn nun der Beste ist. Letztendlich ist ja doch jedes System individuell.

Genau hier setzt das kleine Werkzeug OPlan an, da es zu dieser Frage eine passende Antwort parat hat. Denn OPlan erzeugt für den jeweiligen Patch die passende Anleitung und zeigt die unterschiedlichen Optionen auf mit Vor- und Nachteilen. Damit weiß man nun im Detail, welche Alternativen zum Patchen überhaupt zur Verfügung stehen, welche dieser Routen eine Downtime für den ganzen Cluster oder nur für einzelne Instanzen bedeuten und wie viele Schritte bzw. Zeit dies in Anspruch nimmt.

Und das beste dabei: OPlan existiert in Ihrer Datenbankinstallation bereits, Sie müssen es nur aufrufen!

OPlan

OPlan ist ein ständiger Begleiter von OPatch und wurde schon vor einiger Zeit automatisch mit der aktuellen OPatch Version ausgerollt, d.h. auch eine separate Installation bzw. Update ist nicht notwendig, da dies mit OPatch automatisch installiert wird.

Das OPlan Werkzeug erzeugt für einen Patch eine Schritt für Schritt Anleitung für Ihre spezifische Umgebung. Dabei geht OPlan auf die vorhandenen Installation ein und erzeugt die für Ihre Umgebung passenden Befehle - überlässt Ihnen aber dabei gleichzeitig die Handlungsoptionen, ob Sie z.B. ein Patch rollierend oder doch lieber schneller, dafür aber mit Downtime, einspielen wollen. Ebenso zeigt er die unterschiedlichen Optionen an, wie das Vorgehen bei einem "Out of Place" Upgrade oder der Alternative, dem "In Place" Upgrade, funktioniert. Dabei muss nun nicht mehr manuell die verschiedenen Patch Schritte selber herausgefiltert werden, sondern man kann die vorgegeben Befehle einfach direkt anhand der erzeugten Text bzw. der erzeugten HTML Datei ausführen und verhindert damit auch lästige Tippfehler.

Installation von OPlan

Zwar hat man mit einer aktuellen 11.2.0.4 bzw. 12.1.0.2 Grid Infrastruktur bzw. Datenbank bereits ein OPlan Utility mit installiert, allerdings empfiehlt es sich gerade vor Installation eines aktuellen Patches auch auf die neueste OPlan Version zu gehen. Dieses Vorgehen dürfte Ihnen schon von einem anderen Tool her bekannt sein: OPatch. Daher geschieht die Installation von OPlan quasi auch "implizit": Eine wichtiger Schritt vor jeder Installation eines Patches ist der Download des aktuellen OPatch Utilities (Patch 6880880) und das Entpacken des OPatch Werkzeuges in das jeweilige Oracle Home. OPlan ist automatisch bei OPatch mit enthalten. Ein separater Download und eine separate Installation von OPlan entfallen somit.

Dies gilt übrigens auch, obwohl in der offiziellen Support Note 1306814.1 zu OPLAN noch ein anderer Patch gelistet ist. Der Patch der in der MOS Note verlinkt wird, ist aber älter als der aktuell ausgerollte in den neuesten OPatch Versionen.

Verwendung von OPlan

Das OPlan Werkzeug befindet sich im oplan Unterverzeichnis von OPatch. Wie jedes Oracle Utility verfügt auch OPlan über eine eigene Hilfe:

$ $ORACLE_HOME/OPatch/oplan/oplan -h

usage: oplan  [-h] [-v] { generateSteps  | generateApplySteps
              | generateRollbackSteps  | saveConfigurationSnapshot
              | configurationCompare  [] }
             [-RACPatches ] [-GIPatches ] [-NodeNumberPerReadme ]
 -GIPatches                        Comma separated list of
                                              patches to be applied to Grid Infrastructure Homes
 -MoveConfigToOH              Database Home to migrate the config
 -NodeNumberPerReadme    Node Number for each readme
                                              file for a execution plan
 -RACPatches                      Comma separated list of
                                              patches to be applied to Database Homes
 -h,--help                                    Prints help message.
 -logDir                              Directory for logging and output
 -v,--version                                 Prints OPlan's version information.

generateSteps
    - Generate apply and rollback instructions for the patch
generateApplySteps
    - Generate apply instructions for the patch
generateRollbackSteps
    - Generate rollback instructions for the patch
saveConfigurationSnapshot
    - Save current configuration information to XML file
configurationCompare
    - Compares two system configurations for any changes
...
Der Aufruf von OPlan geschieht einfach als Installationsbentuzer (Oracle) der Oracle Software mit dem entsprechenden Patch. In diesem Fall wurde der aktuelle PSU (Patch # 19954978) nach /u01/app/oracle/patch entpackt und von diesem Verzeichnis aus OPlan mit der Patch-Nummer des PSUs 19954978 aufgerufen:
$ cd /u01/app/oracle/patch
$ $ORACLE_HOME/OPatch/oplan/oplan generateApplySteps 19954978

Processing request...

Review the log messages captured in the following file: /u01/app/grid/cfgtoollogs/oplan/2015-02-16-20-01-02/log.txt

Success!

Follow the instructions outlined in the following Installation Instructions document and patch your system:

Apply Instructions (HTML)    : /u01/app/grid/cfgtoollogs/oplan/2015-02-16-20-01-02/ApplyInstructions.html
Apply Instructions (TEXT)    : /u01/app/grid/cfgtoollogs/oplan/2015-02-16-20-01-02/ApplyInstructions.txt
Es wird eine Text und HTML Datei erzeugt, die die einzelnen Schritte auflistet, um den Patch einzuspielen. Genauso ist es aber auch möglich die einzelnen Schritte für einen Rollback zu erzeugen.
$ $ORACLE_HOME/OPatch/oplan/oplan generateRollbackSteps 19954978
Das Ergebnis dieser Ausgaben listet neben dem Überblick über das System, die vorhandenen Patch Optionen mit ihren Vor- und Nachteilen:





Am Besten schauen Sie sich das Ergebnis von meinem System direkt an, damit Sie eine bessere Vorstellung davon bekommen, wie das Ergebnis von OPlan z.B. für einen PSU aussieht:

Patch Apply Anleitung

Patch Rollback Anleitung

OPlan Konfigurationsvergleich

Existieren Test Systeme, bei denen der Patch dann mit Hilfe von OPlan erfolgreich ausgeführt wurde und möchte man nun wissen, ob auch die Produktivsysteme in derselben Art und Weise gepatched werden können, so bietet OPlan noch die Möglichkeit eines Konfigurationsvergleiches.

Die Eigenschaften eines Systems lassen sich in eine XML Datei abspeichern.

$ $ORACLE_HOME/OPatch/oplan/oplan saveConfigurationSnapshot system.xml
Mit Hilfe dieser XML Datei kann dann das Test System mit den Produktivsystemen verglichen werden, um sich zu vergewissern, dass die OPlan Empfehlungen dieselben sein werden und das Verhalten während des Patchens auch mit den Erfahrungen im Testsystem übereinstimmt.
$ $ORACLE_HOME/OPatch/oplan/oplan configurationCompare system.xml

Fazit

Nützliche Links und Referenzen

  • Oracle Software Patching with OPLAN (Doc ID 1306814.1)
  • Mehr als nur Patching - Das Oracle Patch Utility
  • OPatch Utilities (Patch 6880880)

    Zurück zur Community-Seite