Така че напоследък изпитвам трудности за неща, които трябва да знам по-добре. Всички сме били там преди.
Опитвам се да пресъздам RAC тестово стенд с 2 възела на моя лаптоп. Това ще бъде Oracle 12.1.0.2 на Oracle Linux 6.5 с VirtualBox 5.0. Би трябвало да е доста просто, нали? Дори написах инструкции как го направих още през април тази година. Следвам точно същите стъпки в моя документ на същия лаптоп, но все още имам проблеми. Единствените две неща, които се промениха, е, че отивам директно към 12.1.0.2 (документът ми беше 12.1.0.1 според мен) и вече имам VB 5.0 на лаптопа си.
Имам моите 2 виртуални възела, създадени и готови за работа. Стартирам OUI, за да започна инсталацията на Grid Infrastructure. Когато OUI стигне до фазата на свързване, получавам съобщение за грешка.
Грешка при извикване на целевия „irman ioracle“ на makefile.
Всички сме били на кръстопът в живота. Имате избор, който да направите. Отивам ли наляво или надясно? За мое съжаление, обърнах грешната посока и пропилях няколко седмици от свободното си време. В този момент трябваше да взема решение. Правя ли точно както пише в грешката или разчитам на моя опит? Пренебрегнах сляпо грешката и разчитах на моя опит. Глупав съм.
Само преди два месеца имах точно същата грешка, когато не можах да накарам GI 12.1.0.2 да се компилира на тестов стенд. Този тестов стенд работеше на VMWare ESX хостове. Подадох SR в поддръжката на Oracle и те ме уведомиха, че проблемът ми с компилирането е, защото нямах достатъчно RAM, посветена на всяка виртуална машина. Тъй като е виртуална среда, това беше достатъчно лесно за коригиране. Накарах моя SysAdmin да увеличи RAM паметта и да разменя пространството на виртуалните машини и GI 12.1.0.2 да се компилира точно както обещах. Така че естествено предположих, че тук се сблъсквам със същия проблем. На моя лаптоп непрекъснато увеличавах RAM. Разширих пространството за размяна. Дори стигнах дотам, че възстанових възлите от нулата. Прекарах последните две седмици по пътя на опит и открих, че е неравен, драскав, прашен и много неприятен.
Пътят, по който трябваше да поема, беше да направя изрично, както каза изскачащото поле... прочетете регистрационния файл за повече подробности. Когато най-накрая преодолех упоритостта си да си мисля, че знам отговора, прочетох регистрационния файл. Намерих следните съобщения към края.
ИНФОРМАЦИЯ:- Свързване на Oracle
ИНФОРМАЦИЯ:rm -f /u01/app/crs12.1.0.2/rdbms/lib/oracle
ИНФОРМАЦИЯ:/usr/bin/ld:не може да се намери -ljavavm12collect2:ld върна 1 статус на изход
ИНФОРМАЦИЯ:направи:*** [/u01/app/crs12.1.0.2/rdbms/lib/oracle] Грешка 1
Е, сега е напълно очевидно! Липсва библиотечен файл. Бърза проверка в интернет лесно ме доведе до решението. Не съм сам в този проблем, но по някаква причина OUI не копира libjavavm12.a в $GRID_HOME/lib, както трябва да бъде. Тъй като това изскачащо поле все още седи там, издавам следното на възела.
[oracle@host01 ~]$ export GRID_HOME=/u01/app/crs12.1.0.2[oracle@host01 ~]$ cp $GRID_HOME/javavm/jdk/jdk7/lib/libjavavm12.a $GRID_HOME/libпредварително>
След това се върнах в изскачащото поле и натиснах бутона ПОВТОР. Разбира се, проклетото нещо се компилира и OUI приключи работата си.
АКТУАЛИЗАЦИЯ:Имах същия проблем при инсталирането на софтуера RDBMS 12.1.0.2 в клъстера. Използвах точно същата корекция, за да накарам Oracle да компилира правилно и за софтуера на базата данни.
Но аз не свърших. Както знае всеки, който е инсталирал Grid Infrastructure, той трябва да изпълни скрипта $GRID_HOME/root.sh на всички възли по-късно в процеса. Когато опитах това на първия възел, получих грешка „сегментационна грешка“. Оказва се, че има проблем (и отново не съм сам тук) с perl в инсталациите на GI 12.1.0.2. Дори следното ще получи грешка при сегментиране:
cd $GRID_HOME/perl/bin./perl -vРешението е да инсталирате отново Perl в $GRID_HOME. Намерих запис в блог от Лоран Летуржез, който описва как точно се прави това. Никога не бих разбрал това сам. След повторното инсталиране на Perl на всички мои възли, скриптът root.sh работи добре.
АКТУАЛИЗАЦИЯ:Имах същия проблем при инсталирането на софтуера RDBMS 12.1.0.2 в клъстера. Използвах точно същата корекция, за да накарам perl да работи без грешка при сегментиране.
Като всички нас, разчитам на моя опит, за да ми спести много време. Нещата, които научих преди месец или година, се прилагат днес. Понякога опитът ни пречи и ни отвежда по пътя, който сме искали да остане неизпътуван.