opatch download

Oracle Patch einspielen mit OPatch

Ziel

Ich werde in diesem Blogeintrag zeigen, wie man einen Patch mit OPatch einspielt. Dabei gehe ich zum einen auf die alte Vorgehensweise, wie sie bis vor OPatch 11.2 eingesetzt wurde und zum anderen auf das neue OPatch Auto Feature ein.

 

Testumgebung

Zur Demonstration verwende ich einen Oracle 11g Release 2 Real Application Cluster, der als virtuelle Umgebung mit VirtualBox realisiert wurde.

  1.  Server Name  Betriebssystem   Architektur 
     L11GR2-R1-N1.dba-blog.local   Oracle Linux 5 Update 9   x86_64
     L12GR2-R2-N2.dba-blog.local  Oracle Linux 5 Update 9  x86_64

 

Die Oracle Homes wurden wie folgt konfiguriert.

 Software  Besitzer   Pfad  Variable
 Grid Infrastructure 11g R2   grid  /u01/app/grid/product/11.2.0/grid  $GI_HOME
 Oracle Database 11g R2  oracle  /u01/app/oracle/product/11.2.0/dbhome_1   $ORACLE_HOME 

 

Hinweis: Dieser Blogeintrag kann auch für ältere oder neuere Oracle Versionen verwendet werden. 

 

Aktualisierung von OPatch

Bevor es los gehen kann, muss OPatch aktualisiert werden. Es ist empfehlenswert OPatch regelmäßig zu aktualisieren, da manche Patches eine Mindest-Version voraussetzen. 

 

Die aktuelle OPatch Version kann über My Oracle Support und der Patchnummer 6880880 bezogen werden. Beim Download muss darauf geachtet werden, dass die OPatch Version zur installierten Oracle und BetriebssystemVersion passt.

 

opatch download

 

Ich habe die aktuelle Version von OPatch in das Verzeichnis /u01/app/stage kopiert. Sowohl der grid als auch der oracle Benutzer haben Zugriff auf dieses Verzeichnis.

 

Es empfiehlt sich OPatch im Oracle Home auszuführen. Dadurch kann OPatch bei nicht gesetzter ORACLE_HOME Variable durch die Pfadstruktur das Oracle Home ermitteln. Wird OPatch ohne gesetzter ORACLE_HOME Variable von einem anderen Ort ausgeführt, bricht die Ausführung mit folgenden Fehler ab.

 

The Oracle Home /u01/app/stage is not OUI based home. Please give proper Oracle Home.

 

Vorgehensweise: Grid Infrastructure für einen Cluster

Die Aktualisierung von OPatch der Grid Infrastructure ist etwas speziell. 

[grid] cd /u01/app/stage [grid] unzip p6880880_112000_Linux-x86-64.zip [root] rm -rf $GI_HOME/OPatch [root] mv /u01/app/stage/OPatch $GI_HOME

 

Hinweis: Nach der Installation der Grid Infrastructure ändert das root.sh Skript die Bereichtigungen des OracleHome Verzeichnisses auf root:oinstall. Dies verhindert, dass der grid Benutzer das OPatch Verzeichnis löschen kann bzw. ein neues Verzeichnis erstellen kann. Deshalb wird OPatch zunächst mit dem grid Benutzer entpackt, um die richtigen Berechtigungen zu setzen und anschließend wird dieses Verzeichnis mit dem root Benutzer verschoben

 

Vorgehensweise: Oracle Database

Die Aktualisierung von OPatch der Oracle Database kann ausschließlich mit dem oracle Benutzer durchgeführt werden. 

[oracle] cd /u01/app/stage [oracle] unzip p6880880_112000_Linux-x86-64.zip [oracle] rm -rf $ORACLE_HOME/OPatch [oracle] mv OPatch $ORACLE_HOME

 

Erstellung Oracle Configuration Manager (OCM) Response File

Das Auto Feature benötigt ein Oracle Configuration Manager Response File. Dieses wird mithilfe des emocmrsp Skriptes von OPatch erzeugt. 

$GI_HOME/OPatch/ocm/emocmrsp -output /tmp/ocm.rsp

 

Mithilfe des -output Parameters kann das Zielverzeichnis des Response Files festgelegt werden. Anderenfalls wird die Datei im lokalen Verzeichnis mit dem Namen ocm.rsp angelegt.

 

Installation des Patches

Zur Demonstration der Installation werde ich das letzte Patchset Update (PSU) für Oracle 11.2.0.1.0 installieren. Die Patchnummer des Datenbank PSU lautet 12419378. Wie aus der Readme Datei zu entnehmen muss für die Grid Infrastructure der Patch 9655006 installiert werden.

 

Ich habe beide Patche in das Verzeichnis /u01/app/stage kopiert und anschließend in das Unterverzeichnis psupatch bzw. gipatch entpackt. 

[grid] cd /u01/app/stage [grid] unzip -d gipatch p9655006_112010_Linux-x86-64.zip [grid] unzip -d psupatch p12419378_112010_Linux-x86-64.zip

 

Hinweis: Vor jeder Patchinstallation sollte die Readme Datei und vor allem das Kapitel Patch Installation Prerequisites gelesen werden, da die meisten Patche gewisse Voraussetzungen haben, die erfüllt sein müssen. Stellenweise werden auch andere Patche, wie in meinem Beispiel, benötigt, die vorher installiert werden müssen.

 

Manuelle Vorgehensweise

Um die Grid Infrastructure patchen zu können, muss die Grid Infrstructure entsperrt (Rechte werden verändert) werden. Dieser Schritt muss mit dem root Benutzer durchgeführt werden.

[root] $GI_HOME/crs/install/rootcrs.pl -unlock

 

Hinweis: Das Entsperren der Grid Infrastructure kann sehr lange dauern und ist abhängig von der Anzahl der Dateien in dem Oracle Home Verzeichnis. Liegt zum Beispiel das Audit Dump Verzeichnis unter $GI_HOME/rdbms/audit, kann dies dazu führen, dass das Entsperren der Grid Infrastructure mehrere Minuten bzw. Stunden dauert. 

 

Anschließend kann der Patch mit dem grid Benutzer installiert werden.

[grid] cd /u01/app/stage/gipatch [grid] opatch napply -local -oh $GI_HOME

 

Durch den Parameter -local wird der Patch nur auf dem lokalen Knoten (im Falle einer RAC Installation) installiert. Wird dieser Parameter weggelassen, würde in einem RAC Umfeld ein Rolling Update durchgeführt – sprich Knoten nach Knoten wird gepatcht.

 

Nachdem der Patch installiert wurde, müssen die Rechte wieder zurück auf root gesetzt werden.

[root] /u01/app/11.2.0/grid/crs/install/rootcrs.pl -patch

 

Alle Cluster Resourcen werden anschließend automatisch wieder gestartet. 

 

Nachdem die Grid Infrastructure gepatcht wurde, müssen nun alle weiteren Oracle Homes gepatcht werden. Bevor ein Oracle Home gepatcht wird, sollten zuvor alle Resourcen des betroffenen Oracle Homes gestoppt werden. Dafür bietet sich das srvctl stop home Kommando an. 

[oracle] srvctl stop home -o $ORACLE_HOME -n L11GR2-R1-N1 -s /tmp/rdbms_state

 

 Parameter Bedeutung 
 -o Pfad des Oracle Homes
 -n Knotenname auf dem die Resourcen gestoppt werden sollen 
 -s Status Datei mit den Status der gestoppten Resourcen 

 

Anschließend kann der Patch installiert werden. 

[oracle] cd /u01/app/stage/psupatch [oracle] opatch napply -local -oh $ORACLE_HOME

 

Nachdem die Patchinstallation abgeschlossen ist, müssen alle Oracle Home Resourcen wieder gestartet werden. 

[oracle] srvctl start home -o $ORACLE_HOME -n L11GR2-R1-N1 -s /tmp/rdbms_state

 

Auto Feature

Mithilfe des Auto Features hat Oracle die Installation eines Patches stark vereinfacht. Das Auto Feature patcht alle Oracle Homes automatisch, für die der Patch anwendbar ist. 

[root] export PATH=$GI_HOME/OPatch:$PATH [root] opatch auto /u01/app/stage/gipatch

 

Hinweis: Das Auto Feature patcht Oracle Database Homes nur dann, wenn eine Datenbank in diesem Oracle Home existiert. Für weitere Infos siehe My Oracle Support Note 1361802.1.

 

Möchte man stattdessen nur ein bestimmtes Oracle Home patchen, muss der Parameter -oh angegeben werden.

[root] opatch auto /u01/app/stage/gipatch -oh $GI_HOME [root] opatch auto /u01/app/stage/psupatch -oh $ORACLE_HOME

 

Fehlerbehandlung

In diesem Kapitel liste ich ein My Oracle Support Notes auf, die häufig auftretenen OPatch Fehler beschreiben.

 

Referenzen

Leave a Reply

Your email address will not be published.