sql >> Database teknologi >  >> RDS >> Oracle

Kan ikke kompilere GI 12.1.0.2 og segmenteringsfejl

Så jeg har haft det svært på det seneste med ting, jeg burde vide bedre. Vi har alle været der før.

Jeg forsøger at genskabe en 2-node RAC testbed på min bærbare computer. Dette vil være Oracle 12.1.0.2 på Oracle Linux 6.5 med VirtualBox 5.0. Det burde være ret simpelt, ikke? Jeg skrev endda instruktioner om, hvordan jeg gjorde dette tilbage i april i år. Jeg følger de samme nøjagtige trin i mit dokument på den samme nøjagtige bærbare computer, men alligevel har jeg stadig problemer. De eneste to ting, der har ændret sig, er, at jeg går direkte til 12.1.0.2 (min doc var 12.1.0.1 tror jeg), og jeg har nu VB 5.0 på min bærbare computer.

Jeg har mine 2 virtuelle noder oprettet og klar til at gå. Jeg tænder for OUI for at starte min installation af Grid Infrastructure. Når OUI'en kommer til sammenkædningsfasen, får jeg en fejlmeddelelse.

Fejl ved påkaldelse af målet 'irman ioracle' for makefilen.

Vi har alle stået ved en skillevej i livet. Du har et valg at træffe. Skal jeg til venstre eller skal jeg til højre? Desværre for mig drejede jeg den forkerte retning og spildte et par uger af min fritid. På dette tidspunkt havde jeg en beslutning at tage. Gør jeg præcis som fejlen sagde, eller stoler jeg på min erfaring? Jeg ignorerede blindt fejlen og stolede på min erfaring. Dumme mig.

For bare to måneder siden havde jeg nøjagtig den samme fejl, da jeg ikke kunne få GI 12.1.0.2 til at kompilere på en testbed. Det testbed kørte på VMWare ESX-værter. Jeg indgav en SR til Oracle Support, og de fortalte mig, at mit kompileringsproblem var, fordi jeg ikke havde nok RAM dedikeret til hver virtuelle maskine. Da det var et virtuelt miljø, var dette nemt nok at rette. Jeg fik min SysAdmin til at skrue op for RAM og bytte plads på de virtuelle maskiner og GI 12.1.0.2 kompileret nøjagtigt som lovet. Så jeg antog naturligvis, at jeg løb ind i det samme problem her. På min bærbare computer blev jeg ved med at bumpe RAM op. Jeg udvidede byttepladsen. Jeg gik endda så langt som at genopbygge noderne fra bunden. Jeg tilbragte de sidste to uger på oplevelsesvejen, og jeg syntes, det var ujævnt, kradsende, støvet og meget ubehageligt.

Vejen, jeg skulle have taget, var at gøre eksplicit, som pop-up-boksen sagde ... læs logfilen for flere detaljer. Da jeg endelig kom forbi min stædighed ved at tro, at jeg vidste svaret, læste jeg logfilen. Jeg fandt følgende beskeder mod slutningen.

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

Nå det er helt indlysende nu! Der mangler en biblioteksfil. Et hurtigt tjek på internettet førte mig nemt til løsningen. Jeg er ikke alene i dette problem, men af ​​en eller anden grund kopierer OUI ikke libjavavm12.a til $GRID_HOME/lib, som det burde være. Med den pop-up-boks stadig siddende der, udsteder jeg følgende 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

Jeg gik derefter tilbage til pop op-boksen og trykkede på knappen PRØV IGEN. Sikkert nok, det forbandede kompilerede, og OUI'en afsluttede sit arbejde.

OPDATERING:Jeg havde det samme problem, da jeg installerede RDBMS 12.1.0.2-softwaren på klyngen. Jeg brugte den samme nøjagtige rettelse til at få Oracle til også at kompilere korrekt til databasesoftwaren.

Men jeg var ikke færdig. Som alle, der har installeret Grid Infrastructure, ved, skal de køre $GRID_HOME/root.sh scriptet på alle noder senere i processen. Da jeg forsøgte dette på den første knude, modtog jeg en "segmenteringsfejl" fejl. Det viser sig, at der er et problem (og igen, jeg er ikke alene her) med perl i GI 12.1.0.2-installationer. Selv følgende vil modtage en segmenteringsfejl:

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

Løsningen er at geninstallere Perl i $GRID_HOME. Jeg fandt et blogindlæg af Laurent Leturgez, som beskriver præcis, hvordan dette gøres. Jeg ville aldrig have fundet ud af det her på egen hånd. Efter at have geninstalleret Perl på alle mine noder, kørte root.sh-scriptet fint.

OPDATERING:Jeg havde det samme problem, da jeg installerede RDBMS 12.1.0.2-softwaren på klyngen. Jeg brugte den samme nøjagtige rettelse til at få perl til at køre uden en segmenteringsfejl.

Som os alle andre, stoler jeg på, at min erfaring sparer mig en masse tid. Ting, jeg lærte for en måned eller et år siden, anvendes i dag. Nogle gange kommer erfaring i vejen for os og fører os ned ad en vej, som vi ville ønske forblev uberejst.


  1. Validering af dine PostgreSQL-sikkerhedskopier på Docker

  2. Sådan erklæres variabel i PostgreSQL

  3. Hvordan aktiverer man MySQL-klientens automatiske genforbindelse med MySQLdb?

  4. SELECT-forespørgsel returnerer 1 række fra hver gruppe