Ich habe kürzlich das Juli-PSU auf eine meiner RAC-Datenbanken angewendet und von OPatch immer wieder eine Fehlermeldung erhalten, dass die Vorabprüfung von SystemSpace fehlgeschlagen ist. Es sollte niemanden überraschen, dass OPatch eine Reihe von erforderlichen Prüfungen durchläuft, bevor der Patch angewendet wird. OPatch versucht, gute Erfolgschancen sicherzustellen und nicht mitten im Patch-Prozess zu bombardieren.
Jetzt ist checkSystemSpace nur eine der Prüfungen, die OPatch durchführt. Und aus seinem Titel kann ich leicht erkennen, dass ich wenig Speicherplatz habe, wahrscheinlich Festplattenspeicher. Ich weiß, dass sich dies auf dem Festplatten-Mount befindet, auf dem sich ORACLE_HOME befindet, da dies der einzige Speicherplatz ist, den ich beim Anwenden des Patches ändere. Aber was OPatch mir auf dem Bildschirm nicht sagte, ist, wie viel Platz benötigt wird. Die OPatch-Protokolldatei hat mir auch nichts gesagt. Ich hatte ungefähr 8 GB freien Speicherplatz auf diesem Laufwerk und das Netzteil war bei weitem nicht so groß. Ich habe einige alte Dateien bereinigt, aber OPatch ist bei dieser Prüfung immer noch fehlgeschlagen.
Um herauszufinden, wie viel Speicherplatz benötigt wird, habe ich OPatch für diese spezielle Voraussetzungsprüfung wie folgt manuell ausgeführt:
opatch prereq checkSystemSpace -ph .
Ich führe eine Voraussetzungsprüfung durch. Der zweite Parameter von OPatch teilt ihm mit, welche Prüfung ausgeführt werden soll. Die Direktive -ph teilt OPatch mit, welches Patch-Home-Verzeichnis verwendet werden soll, und in meinem Fall ist es das aktuelle Verzeichnis (gekennzeichnet durch den Punkt). Die Ausgabe ähnelte der folgenden, der Kürze halber:
Space Needed : 8780.128MB
Space Usable : 8347.293MB
Required amount of space(8780.128MB) is not available.
Prereq "checkSystemSpace" failed.
Indem ich die Prereq-Prüfung manuell durchführte, konnte ich die benötigten Informationen erhalten. OPatch sucht nach etwa 8,7 GB freiem Speicherplatz und ich habe 8,3 GB zur Verfügung und mir fehlen etwa 430 MB. Jetzt habe ich also eine ungefähre Vorstellung davon, wie viel Speicherplatz ich aufräumen muss, bevor diese Prüfung korrekt bestanden wird.
OPatch verfügt über eine Reihe weiterer Prüfungen. Um sie alle herauszufinden, geben Sie Folgendes ein:
opatch prereq -h
Diese enthält nicht nur die Namen der Prüfungen, sondern jeweils eine kurze Beschreibung. Beispielsweise werden Sie möglicherweise benachrichtigt, dass die Prüfung "CheckApplicable" fehlgeschlagen ist. Was bedeutet das? Die Ein-Absatz-Beschreibung lautet:
CheckApplicable
Check for the presence of the required components in
the ORACLE_HOME and check if all the actions of the
given patch(es) are applicable.
Diese Prüfung stellt also sicher, dass das Oracle-Home-Verzeichnis über die erforderlichen Komponenten verfügt, um erfolgreich zu sein. Sie können beispielsweise keinen Patch anwenden, um ein Partitionierungsproblem zu beheben, wenn die Partitionierungsoption nicht installiert ist. Verwenden Sie OPatch, um den Rest der Rereq-Prüfungen anzuzeigen, die OPatch durchführt. Die meisten von ihnen laufen ohne Vorankündigung im Hintergrund, einige davon könnten Sie überraschen.
Wenn Sie das nächste Mal eine Prereq-Prüfung fehlschlagen, versuchen Sie, sie manuell auszuführen, um zu sehen, ob Sie mehr Informationen haben, als ursprünglich bereitgestellt wurden, als Sie versuchten, den Patch anzuwenden.