sql >> Database >  >> RDS >> Oracle

Kan GI 12.1.0.2 en Segmentatiefout niet compileren

Dus ik heb het de laatste tijd moeilijk met dingen die ik beter zou moeten weten. We zijn er allemaal eerder geweest.

Ik probeer een 2-node RAC-testbed op mijn laptop opnieuw te maken. Dit wordt Oracle 12.1.0.2 op Oracle Linux 6.5 met VirtualBox 5.0. Zou vrij simpel moeten zijn, toch? Ik heb zelfs in april van dit jaar instructies geschreven over hoe ik dit deed. Ik volg exact dezelfde stappen in mijn document op exact dezelfde laptop, maar toch heb ik nog steeds problemen. De enige twee dingen die zijn veranderd, is dat ik rechtstreeks naar 12.1.0.2 ga (mijn document was 12.1.0.1 geloof ik) en ik heb nu VB 5.0 op mijn laptop.

Ik heb mijn 2 virtuele knooppunten gemaakt en klaar voor gebruik. Ik start de OUI om mijn installatie van Grid Infrastructure te starten. Wanneer de OUI in de koppelingsfase komt, krijg ik een foutmelding.

Fout bij het aanroepen van doel 'irman ioracle' van makefile.

We hebben allemaal op een kruispunt in het leven gestaan. Je hebt een keuze te maken. Ga ik naar links of ga ik naar rechts? Helaas voor mij sloeg ik de verkeerde kant op en verspilde een paar weken van mijn vrije tijd. Op dat moment moest ik een beslissing nemen. Doe ik precies wat de fout zei of vertrouw ik op mijn ervaring? Ik negeerde de fout blindelings en vertrouwde op mijn ervaring. Dwaas van me.

Slechts twee maanden geleden had ik exact dezelfde fout toen ik GI 12.1.0.2 niet kon laten compileren op een testbed. Dat testbed draaide op VMWare ESX-hosts. Ik heb een SR ingediend bij Oracle Support en ze lieten me weten dat mijn compileerprobleem was omdat ik niet genoeg RAM had voor elke virtuele machine. Omdat het een virtuele omgeving was, was dit eenvoudig genoeg om op te lossen. Ik liet mijn SysAdmin het RAM-geheugen verhogen en de ruimte op de virtuele machines verwisselen en GI 12.1.0.2 compileerde precies zoals beloofd. Dus ik nam natuurlijk aan dat ik hier hetzelfde probleem tegenkwam. Op mijn laptop bleef ik RAM tegen het lijf lopen. Ik heb de swap-ruimte uitgebreid. Ik ging zelfs zo ver om de nodes helemaal opnieuw op te bouwen. Ik heb de afgelopen twee weken op de weg van ervaring doorgebracht en ik vond het hobbelig, krassend, stoffig en zeer onaangenaam.

De weg die ik had moeten nemen, was om expliciet te doen zoals het pop-upvenster zei ... lees het logbestand voor meer details. Toen ik eindelijk mijn koppigheid door te denken dat ik het antwoord wist, voorbij was, las ik het logbestand. Tegen het einde vond ik de volgende berichten.

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

Nou, het is nu helemaal duidelijk! Er ontbreekt een bibliotheekbestand. Een snelle check op internet bracht me gemakkelijk bij de oplossing. Ik ben niet de enige in dit probleem, maar om de een of andere reden kopieert de OUI libjavavm12.a niet naar $GRID_HOME/lib zoals het zou moeten. Met dat pop-upvenster er nog steeds, geef ik het volgende op het knooppunt uit.

[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

Ik ging toen terug naar het pop-upvenster en drukte op de RETRY-knop. En ja hoor, het verdomde ding is gecompileerd en de OUI heeft zijn werk afgemaakt.

UPDATE:ik had hetzelfde probleem bij het installeren van de RDBMS 12.1.0.2-software op het cluster. Ik heb exact dezelfde oplossing gebruikt om oracle ook correct te compileren voor de databasesoftware.

Maar ik was niet klaar. Zoals iedereen die Grid Infrastructure heeft geïnstalleerd weet, moeten ze later in het proces het script $GRID_HOME/root.sh op alle knooppunten uitvoeren. Toen ik dit op het eerste knooppunt probeerde, ontving ik een "segmentatiefout" -fout. Blijkt dat er een probleem is (en nogmaals, ik ben hier niet de enige) met perl in GI 12.1.0.2-installaties. Zelfs het volgende krijgt een segmentatiefout:

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

De oplossing is om Perl opnieuw te installeren in $GRID_HOME. Ik vond een blogbericht van Laurent Leturgez waarin precies wordt beschreven hoe dit wordt gedaan. Ik had dit zelf nooit bedacht. Nadat ik Perl op al mijn nodes opnieuw had geïnstalleerd, werkte het root.sh-script prima.

UPDATE:ik had hetzelfde probleem bij het installeren van de RDBMS 12.1.0.2-software op het cluster. Ik heb exact dezelfde oplossing gebruikt om perl te laten werken zonder een segmentatiefout.

Zoals wij allemaal, vertrouw ik op mijn ervaring om me veel tijd te besparen. Dingen die ik een maand of een jaar geleden heb geleerd, worden vandaag toegepast. Soms staat ervaring ons in de weg en nemen we een weg die we liever niet hadden bewandeld.


  1. Hoe MariaDB Database in Debian 10 te installeren

  2. Meer informatie over samenvoegen in SQL met voorbeelden

  3. Hoe PostgreSQL Server op Mac OS X te starten via Homebrew

  4. Gebruik tnsnames.ora in Oracle SQL Developer