sql >> Databasteknik >  >> RDS >> Oracle

Kan inte kompilera GI 12.1.0.2 och segmenteringsfel

Så jag har haft det tufft på sistone med saker jag borde veta bättre. Vi har alla varit där förut.

Jag försöker återskapa en 2-nods RAC-testbädd på min bärbara dator. Detta kommer att vara Oracle 12.1.0.2 på Oracle Linux 6.5 med VirtualBox 5.0. Borde vara ganska enkelt, eller hur? Jag skrev till och med instruktioner om hur jag gjorde detta redan i april i år. Jag följer exakt samma steg i mitt dokument på samma exakta bärbara dator men jag har fortfarande problem. De enda två sakerna som har ändrats är att jag går direkt till 12.1.0.2 (min doc var 12.1.0.1 tror jag) och jag har nu VB 5.0 på min bärbara dator.

Jag har mina 2 virtuella noder skapade och redo att gå. Jag startar OUI för att starta min installation av Grid Infrastructure. När OUI kommer till länkningsfasen får jag ett felmeddelande.

Fel vid anropande av mål "irman ioracle" för makefilen.

Vi har alla stått vid ett vägskäl i livet. Du har ett val att göra. Går jag vänster eller går jag höger? Tyvärr för mig vände jag åt fel håll och slösade bort några veckor av min fritid. Vid det här laget hade jag ett beslut att fatta. Gör jag exakt som felet sa eller litar jag på min erfarenhet? Jag ignorerade blint felet och litade på min erfarenhet. Dumma mig.

För bara två månader sedan fick jag exakt samma fel när jag inte kunde få GI 12.1.0.2 att kompilera på en testbädd. Den testbädden kördes på VMWare ESX-värdar. Jag lämnade in en SR till Oracle Support och de lät mig veta att mitt kompileringsproblem berodde på att jag inte hade tillräckligt med RAM till varje virtuell maskin. Eftersom det var en virtuell miljö var detta lätt nog att fixa. Jag fick min SysAdmin att öka RAM-minnet och byta utrymme på de virtuella maskinerna och GI 12.1.0.2 kompilerades exakt som utlovat. Så jag antog naturligtvis att jag stötte på samma problem här. På min bärbara dator fortsatte jag att stöta upp RAM. Jag utökade bytesutrymmet. Jag gick till och med så långt som att bygga om noderna från grunden. Jag tillbringade de senaste två veckorna på upplevelsens väg och jag tyckte att det var ojämnt, repigt, dammigt och mycket obehagligt.

Vägen jag skulle ha tagit var att uttryckligen göra som popup-rutan sa ... läs loggfilen för mer information. När jag äntligen kom förbi min envishet i att tro att jag visste svaret, läste jag loggfilen. Jag hittade följande meddelanden mot slutet.

INFO: - Linking Oracle
INFO: rm -f /u01/app/crs12.1.0.2/rdbms/lib/oracle
INFO: /usr/bin/ld: cannot find -ljavavm12
collect2: ld returned 1 exit status
INFO: make: *** [/u01/app/crs12.1.0.2/rdbms/lib/oracle] Error 1

Det är väl helt uppenbart nu! En biblioteksfil saknas. En snabb kontroll på Internet ledde mig lätt till lösningen. Jag är inte ensam i det här problemet, men av någon anledning kopierar inte OUI libjavavm12.a till $GRID_HOME/lib som det borde vara. Med den där popup-rutan fortfarande kvar, skickar jag följande på noden.

[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

Jag gick sedan tillbaka till popup-rutan och tryckte på RETRY-knappen. Visst, det jävla kompilerades och OUI avslutade sitt arbete.

UPPDATERING:Jag hade samma problem när jag installerade programvaran RDBMS 12.1.0.2 på klustret. Jag använde samma exakta fix för att få Oracle att kompilera korrekt för databasprogramvaran också.

Men jag var inte klar. Som alla som har installerat Grid Infrastructure vet måste de köra $GRID_HOME/root.sh-skriptet på alla noder senare i processen. När jag försökte detta på den första noden fick jag ett "segmenteringsfel". Det visar sig att det finns ett problem (och återigen, jag är inte ensam här) med perl i GI 12.1.0.2-installationer. Även följande kommer att få ett segmenteringsfel:

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

Lösningen är att installera om Perl i $GRID_HOME. Jag hittade ett blogginlägg av Laurent Leturgez som beskriver exakt hur detta går till. Jag skulle aldrig ha kommit på det här på egen hand. Efter att ha installerat om Perl på alla mina noder, fungerade root.sh-skriptet bra.

UPPDATERING:Jag hade samma problem när jag installerade programvaran RDBMS 12.1.0.2 på klustret. Jag använde samma exakta fix för att få perl att köras utan ett segmenteringsfel.

Precis som vi alla litar jag på min erfarenhet för att spara mycket tid. Saker jag lärde mig för en månad eller ett år sedan tillämpas idag. Ibland kommer erfarenheter i vägen för oss och tar oss på en väg som vi önskade förblev orörd.


  1. Hur får man storleken på en MySQL-databas?

  2. Postgres:Distinkt men bara för en kolumn

  3. Vad är SQL Server Blocking?

  4. NULL Complexities – Del 2