Наскоро прилагах юлското захранване към една от моите RAC бази данни и непрекъснато получавах грешка от OPatch, че предварителна проверка checkSystemSpace е неуспешна. Не трябва да е изненада за никого, че OPatch преминава през редица предварителни проверки, преди да приложи корекцията. OPatch се опитва да осигури добър шанс за успех и да не бомбардира по средата на процеса на корекция.
Сега checkSystemSpace е само една от проверките, които OPatch извършва. И от заглавието му лесно мога да разбера, че ми липсва място, вероятно дисково. Знам, че това е на монтирането на диска, където се намира ORACLE_HOME, тъй като това е единственото дисково пространство, което променям, когато прилагам корекцията. Но това, което OPatch не ми каза на екрана, е колко място е необходимо. Регистрационният файл на OPatch също не ми каза. Имах около 8 GB свободно място на това устройство и PSU не беше близо до този размер. Почистих някои стари файлове, но OPatch все още не успя при тази проверка.
За да разбера колко дисково пространство е необходимо, стартирах ръчно OPatch за тази специфична предпоставка, както следва:
opatch prereq checkSystemSpace -ph .
Извършвам проверка на предпоставките. Вторият параметър на OPatch му казва коя проверка да изпълни. Директивата -ph казва на OPatch коя домашна директория на корекцията да използва и в моя случай това е текущата директория (означена с точка). Резултатът беше подобен на следния изрязан за краткост:
Space Needed : 8780.128MB
Space Usable : 8347.293MB
Required amount of space(8780.128MB) is not available.
Prereq "checkSystemSpace" failed.
Като стартирах ръчно проверката на предварителните изисквания, успях да получа необходимата информация. OPatch търси около 8,7 GB свободно пространство, а аз имам 8,3 GB на разположение и имам около 430 MB. Така че сега имам добра представа колко място трябва да почистя, преди тази проверка да премине правилно.
OPatch има редица други проверки с него. За да разберете всички, издайте следното:
opatch prereq -h
Това ще даде не само имената на чековете, но и кратко описание на всеки. Например може да бъдете уведомени, че проверката CheckApplicable е неуспешна. Какво означава това? Описанието на един параграф е:
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.
Така че тази проверка гарантира, че началната директория на Oracle има компонентите, необходими за успех. Например, не можете да приложите корекция, за да коригирате проблем с разделянето, ако опцията за разделяне не е инсталирана. Използвайте OPatch, за да видите останалите проверки на rereq, които OPatch прави. Повечето от тях продължават на заден план без предупреждение, така че някои от тях може да ви изненадат.
Следващия път, когато проверката на предварителното изискване е неуспешна, опитайте да я стартирате ръчно, за да видите дали имате повече информация от първоначално предоставената, когато сте се опитали да приложите корекцията.