Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Nie można skompilować GI 12.1.0.2 i błędu segmentacji

Więc ostatnio miałem z tym ciężki okres w sprawach, o których powinienem wiedzieć lepiej. Wszyscy byliśmy tam wcześniej.

Próbuję odtworzyć dwuwęzłowe środowisko testowe RAC na moim laptopie. Będzie to Oracle 12.1.0.2 na Oracle Linux 6.5 z VirtualBox 5.0. Powinno być całkiem proste, prawda? Napisałem nawet instrukcje, jak to zrobiłem w kwietniu tego roku. Wykonuję dokładnie te same kroki w moim dokumencie na tym samym laptopie, ale nadal mam problemy. Jedyne dwie rzeczy, które się zmieniły, to przechodzę bezpośrednio do 12.1.0.2 (moim dokumentem był 12.1.0.1, jak sądzę) i mam teraz VB 5.0 na moim laptopie.

Mam utworzone 2 wirtualne węzły i gotowe do pracy. Odpalam OUI, aby rozpocząć instalację infrastruktury sieciowej. Gdy OUI przechodzi do fazy łączenia, pojawia się komunikat o błędzie.

Błąd w wywołaniu celu „irman ioracle” makefile.

Wszyscy byliśmy w życiu na rozdrożu. Masz wybór. Czy idę w lewo, czy w prawo? Niestety dla mnie skręciłem w złym kierunku i zmarnowałem kilka tygodni wolnego czasu. W tym momencie musiałem podjąć decyzję. Czy robię dokładnie tak, jak powiedział błąd, czy też polegam na swoim doświadczeniu? Ślepo zignorowałem błąd i oparłem się na swoim doświadczeniu. Głupi ja.

Zaledwie dwa miesiące temu miałem dokładnie ten sam błąd, kiedy nie mogłem skompilować GI 12.1.0.2 na platformie testowej. To stanowisko testowe było uruchomione na hostach VMWare ESX. Wysłałem SR do Oracle Support i poinformowali mnie, że mój problem z kompilacją był spowodowany brakiem pamięci RAM przeznaczonej dla każdej maszyny wirtualnej. Ponieważ było to środowisko wirtualne, było to dość łatwe do naprawienia. Mój SysAdmin podkręcił pamięć RAM i przestrzeń wymiany na maszynach wirtualnych, a GI 12.1.0.2 skompilował dokładnie tak, jak obiecałem. Więc naturalnie założyłem, że mam tutaj ten sam problem. Na moim laptopie ciągle podbijałem pamięć RAM. Rozszerzyłem przestrzeń wymiany. Posunąłem się nawet do odbudowania węzłów od podstaw. Spędziłem ostatnie dwa tygodnie na drodze doświadczeń i stwierdziłem, że jest wyboiste, drapiące, zakurzone i bardzo nieprzyjemne.

Droga, którą powinienem był zrobić, to zrobić wyraźnie, jak mówi wyskakujące okienko… przeczytaj plik dziennika, aby uzyskać więcej informacji. Kiedy w końcu przezwyciężyłem swój upór w myśleniu, że znam odpowiedź, przeczytałem plik dziennika. Pod koniec znalazłem następujące wiadomości.

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

Cóż, teraz jest to całkowicie oczywiste! Brak pliku biblioteki. Szybkie sprawdzenie w Internecie z łatwością doprowadziło mnie do rozwiązania. Nie jestem sam w tym wydaniu, ale z jakiegoś powodu OUI nie kopiuje libjavavm12.a do $GRID_HOME/lib tak, jak powinno. Mając to wyskakujące okienko, które wciąż tam jest, wysyłam następujące informacje w węźle.

[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

Następnie wróciłem do wyskakującego okienka i nacisnąłem przycisk RETRY. Rzeczywiście, to cholerstwo skompilowało się i OUI zakończył swoją pracę.

AKTUALIZACJA:Miałem ten sam problem podczas instalacji oprogramowania RDBMS 12.1.0.2 w klastrze. Użyłem tej samej dokładnej poprawki, aby skompilować oracle poprawnie również dla oprogramowania bazy danych.

Ale nie skończyłem. Jak wie każdy, kto zainstalował Grid Infrastructure, musi uruchomić skrypt $GRID_HOME/root.sh na wszystkich węzłach w dalszej części procesu. Kiedy spróbowałem tego na pierwszym węźle, otrzymałem błąd „błąd segmentacji”. Okazuje się, że jest problem (i znowu nie jestem tu sam) z perlem w instalacjach GI 12.1.0.2. Nawet następujące elementy otrzymają błąd segmentacji:

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

Rozwiązaniem jest ponowna instalacja Perla w $GRID_HOME. Znalazłem wpis na blogu autorstwa Laurenta Leturgeza, który dokładnie opisuje, jak to się robi. Sama bym tego nie wymyśliła. Po ponownej instalacji Perla na wszystkich moich węzłach skrypt root.sh działał dobrze.

AKTUALIZACJA:Miałem ten sam problem podczas instalacji oprogramowania RDBMS 12.1.0.2 w klastrze. Użyłem tej samej dokładnej poprawki, aby perl działał bez błędu segmentacji.

Jak każdy z nas, polegam na swoim doświadczeniu, aby zaoszczędzić mi dużo czasu. Rzeczy, których nauczyłem się miesiąc lub rok temu, mają zastosowanie dzisiaj. Czasami doświadczenie staje nam na drodze i prowadzi nas na drogę, którą chcielibyśmy, aby pozostała nie do przebycia.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Insert Select z zamówieniem według

  2. czy jest jakiś sposób na rejestrowanie wszystkich nieudanych instrukcji sql w Oracle 10g?

  3. Niejawna różnica konwersji CAST vs ssis przepływu danych

  4. Jak zainstalować Oracle Linux Automation Manager (znany również jako „Oracle Ansible Tower”)

  5. Czy kolejność tabel, do których odwołuje się klauzula ON w JOIN, ma znaczenie?