Nedávno jsem aplikoval červencový PSU na jednu z mých RAC databází a stále jsem dostával chybu z OPatch, že selhala prereq checkSystemSpace. Nikoho by nemělo překvapit, že OPatch prochází před aplikací opravy řadou nezbytných kontrol. OPatch se snaží zajistit dobrou šanci na úspěch a nevybuchnout uprostřed procesu opravy.
Nyní je checkSystemSpace pouze jednou z kontrol, které OPatch provádí. A podle názvu snadno poznám, že mi chybí místo, pravděpodobně místo na disku. Vím, že je to na disku, kde se nachází ORACLE_HOME, protože to je jediné místo na disku, které při použití opravy upravuji. Ale to, co mi OPatch na obrazovce neřekl, je, kolik místa je potřeba. Soubor protokolu OPatch mi také neřekl. Na tomto disku jsem měl asi 8 GB volného místa a PSU se této velikosti ani zdaleka neblížil. Vyčistil jsem některé staré soubory, ale OPatch při této kontrole stále selhal.
Abych zjistil, kolik místa na disku bylo potřeba, ručně jsem spustil OPatch pro tuto specifickou kontrolu předpokladů takto:
prereq prereq checkSystemSpace -ph .
Provádím kontrolu předpokladů. Druhý parametr OPatch mu říká, která kontrola se má spustit. Direktiva -ph říká OPatch, který domovský adresář patche má použít a v mém případě je to aktuální adresář (označený tečkou). Výstup byl podobný následujícímu seříznutému pro stručnost:
Space Needed : 8780.128MB
Space Usable : 8347.293MB
Required amount of space(8780.128MB) is not available.
Prereq "checkSystemSpace" failed.
Ručním spuštěním kontroly prereq jsem byl schopen získat informace, které jsem potřeboval. OPatch hledá asi 8,7 GB volného místa a já mám k dispozici 8,3 GB a chybí mi asi 430 MB. Takže teď mám dobrou představu, kolik místa potřebuji uklidit, než tato kontrola projde správně.
OPatch má s sebou řadu dalších kontrol. Chcete-li je všechny zjistit, zadejte následující:
opatch prereq -h
Tím získáte nejen názvy kontrol, ale i krátký popis každého z nich. Můžete například být upozorněni, že kontrola CheckApplicable selhala. Co to znamená? Popis jednoho odstavce je:
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.
Tato kontrola tedy zajišťuje, že domovský adresář Oracle má součásti potřebné k úspěchu. Nemůžete například použít opravu k vyřešení problému s rozdělením, pokud není nainstalována možnost Dělení. Použijte OPatch k zobrazení zbytku rereq kontrol, které OPatch provádí. Většina z nich pokračuje na pozadí bez upozornění, takže některé z nich vás mohou překvapit.
Až se vám příště nezdaří kontrola prereq, zkuste ji spustit ručně, abyste zjistili, zda máte více informací, než jaké byly původně poskytnuty při pokusu o aplikaci opravy.