sql >> Databáze >  >> RDS >> Oracle

Nelze zkompilovat GI 12.1.0.2 a Segmentation Fault

Takže jsem to měl v poslední době těžké ve věcech, které bych měl vědět lépe. Všichni jsme tam už byli.

Snažím se na svém notebooku znovu vytvořit 2-uzlové testovací zařízení RAC. Toto bude Oracle 12.1.0.2 na Oracle Linux 6.5 s VirtualBoxem 5.0. Mělo by to být docela jednoduché, ne? Dokonce jsem v dubnu tohoto roku napsal návod, jak jsem to udělal. Postupuji přesně podle stejných kroků ve svém dokumentu na stejném přesném notebooku, ale stále mám problémy. Jediné dvě věci, které se změnily, je, že přecházím přímo na 12.1.0.2 (myslím, že můj dokument byl 12.1.0.1) a nyní mám na svém notebooku VB 5.0.

Mám své 2 virtuální uzly vytvořené a připravené k použití. Spustím OUI, abych zahájil instalaci Grid Infrastructure. Když se OUI dostane do fáze propojení, zobrazí se mi chybová zpráva.

Chyba při vyvolání cílového „irman ioracle“ makefile.

Všichni jsme byli na životní křižovatce. Máte na výběr. Půjdu doleva nebo doprava? Bohužel pro mě jsem odbočil špatným směrem a promarnil pár týdnů svého volného času. V tuto chvíli jsem se musel rozhodnout. Dělám přesně tak, jak uvádí chyba, nebo se spoléhám na své zkušenosti? Slepě jsem chybu ignoroval a spoléhal na své zkušenosti. Jsem hloupý.

Zrovna před dvěma měsíci jsem měl úplně stejnou chybu, když jsem nemohl získat GI 12.1.0.2 ke kompilaci na testovacím zařízení. Toto testovací prostředí běželo na hostitelích VMWare ESX. Podal jsem SR podporu Oracle a oni mi dali vědět, že můj problém s kompilací byl způsoben tím, že jsem neměl dostatek paměti RAM věnované každému virtuálnímu počítači. Vzhledem k tomu, že jde o virtuální prostředí, bylo to dost snadné napravit. Nechal jsem svého SysAdmina zkompilovat RAM a odkládací prostor na virtuálních strojích a GI 12.1.0.2 přesně tak, jak jsem slíbil. Takže jsem přirozeně předpokládal, že tady narážím na stejný problém. Na mém notebooku jsem neustále nabíjel RAM. Rozšířil jsem swapový prostor. Dokonce jsem zašel tak daleko, že jsem přestavěl uzly od nuly. Strávil jsem poslední dva týdny na cestě zkušeností a zjistil jsem, že je hrbolatý, škrábavý, prašný a velmi nepříjemný.

Cestou, kterou jsem se měl vydat, bylo udělat výslovně, jak říkalo vyskakovací okno… přečtěte si soubor protokolu pro další podrobnosti. Když jsem se konečně dostal přes svou tvrdohlavost v domnění, že znám odpověď, přečetl jsem si soubor protokolu. Ke konci jsem našel následující zprávy.

INFO:- Propojení Oracle
INFO:rm -f /u01/app/crs12.1.0.2/rdbms/lib/oracle
INFO:/usr/bin/ld:nelze najít -ljanavm12collect2:ld vrátil 1 stav ukončení
INFO:make:*** [/u01/app/crs12.1.0.2/rdbms/lib/oracle] Chyba 1

Tak už je to zcela jasné! Chybí soubor knihovny. K řešení mě snadno přivedla rychlá kontrola na internetu. Nejsem v tomto problému sám, ale z nějakého důvodu OUI nekopíruje libjanavm12.a do $GRID_HOME/lib, jak by mělo. S tím vyskakovacím oknem, které tam stále sedí, vydám na uzlu následující.

[oracle@host01 ~]$ export GRID_HOME=/u01/app/crs12.1.0.2[oracle@host01 ~]$ cp $GRID_HOME/janavm/jdk/jdk7/lib/libjaavm12.a $GRID_HOME/lib 

Potom jsem se vrátil do vyskakovacího okna a stiskl tlačítko ZNOVU. Jistě, ta zatracená věc se zkompilovala a OUI dokončilo svou práci.

AKTUALIZACE:Měl jsem stejný problém při instalaci softwaru RDBMS 12.1.0.2 na cluster. Použil jsem stejnou přesnou opravu, aby se Oracle správně zkompiloval i pro databázový software.

Ale neskončil jsem. Jak každý, kdo si nainstaloval infrastrukturu Grid, ví, že později v procesu musí na všech uzlech spustit skript $GRID_HOME/root.sh. Když jsem se o to pokusil na prvním uzlu, obdržel jsem chybu „chyba segmentace“. Ukázalo se, že v instalacích GI 12.1.0.2 je problém (a opět tu nejsem sám) s perlem. Chybu segmentace obdrží i následující:

cd $GRID_HOME/perl/bin
./perl -v

Řešením je přeinstalovat Perl v $GRID_HOME. Na blogu jsem našel příspěvek od Laurenta Leturgeze, který přesně popisuje, jak se to dělá. Sám bych na to nikdy nepřišel. Po reinstalaci Perlu na všechny mé uzly běžel skript root.sh v pořádku.

AKTUALIZACE:Měl jsem stejný problém při instalaci softwaru RDBMS 12.1.0.2 na cluster. Použil jsem stejnou přesnou opravu, aby se Perl spustil bez chyby segmentace.

Stejně jako my všichni spoléhám na své zkušenosti, které mi ušetří spoustu času. Věci, které jsem se naučil před měsícem nebo rokem, platí i dnes. Někdy se nám do cesty postaví zkušenost a zavede nás na cestu, po které jsme si přáli zůstat neprojeti.


  1. Použití Oracle JDeveloper Snippets s MySQL

  2. Jak získat poslední vložené ID?

  3. Databáze místností Android, načte konkrétní hodnotu posledního zadaného záznamu

  4. Jak migrovat databázi Oracle z AWS EC2 na AWS RDS