2014-12-31 30 views
5

Proszę zaproponować rozwiązanie umożliwiające rozwiązanie tego problemu? Dając komendę sqlplus /nolog wystąpił błąd jestsqlplus: błąd podczas ładowania bibliotek współdzielonych: libsqlplus.so: nie można otworzyć pliku obiektu współdzielonego: brak takiego pliku lub katalogu

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory ..

+0

Jak źródłowego środowisko? Pokaż nam. – tvCa

+0

Sprawdź [ten link] (http://opensourceforgeeks.blogspot.in/2015/09/installing-oracle-instant-database.html), aby uzyskać szczegółowe instrukcje dotyczące zrzutu ekranu. –

Odpowiedz

0

Oznacza to, że nie ustawić ORACLE_HOME i ORACLE_SID zmienne. Uprzejmie ustaw poprawne działanie $ ORACLE_HOME i $ ORACLE_SID, a następnie wykonaj polecenie sqlplus/nolog. To będzie działać.

0

mógłbyś sprawdzić, czy punkty LD_LIBRARY_PATH do libs oracle

5

Minimalna konfiguracja prawidłowo prowadzony sqlplus z powłoka jest ustawienie ORACLE_HOME i LD_LIBRARY_PATH. Dla ułatwienia użytkowania możesz również odpowiednio ustawić PATH.

Zakładając, że rozpakowane wymagane archiwa w /opt/oracle/instantclient_11_1:

sh$ export ORACLE_HOME=/opt/oracle/instantclient_11_1 
sh$ export LD_LIBRARY_PATH="$ORACLE_HOME" 
sh$ export PATH="$ORACLE_HOME:$PATH" 

sh$ sqlplus 

SQL*Plus: Release 11.1.0.7.0 - Production on Wed Dec 31 14:06:06 2014 
... 
+0

tak, ale tylko wtedy, gdy pliki wykonywalne i biblioteki są w $ ORACLE_HOME/i nie, gdy są zainstalowane we własnych katalogach, takich jak $ ORACLE_HOME/bin/i $ ORACLE_HOME/lib/ –

+1

@ik_zelf Right. Ale z jakichś powodów założyłem, że OP używa SQL * Plus dostarczonego jako część [pakietu instantclient] (http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html). Są to w większości _flat_ archiwa ze wszystkimi bibliotekami i binariami w katalogu podstawowym. Oczywiście, jeśli przeniesiesz pliki po ich wyodrębnieniu, jak wyjaśniono [tutaj] (http://ronr.blogspot.fr/2014/10/how-to-install-oracle-instant-client-on.html) (;)), należy odpowiednio dostosować różne zmienne środowiskowe. –

2

zrobiłem rozwiązać ten problem przez ustawienie

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME 

Tak, ale nie tylko $ ORACLE_HOME/lib ale $ ORACLE_HOME też.

2

UPRAWNIENIA: Chcę podkreślić znaczenie uprawnień dla "sqlplus".

  1. Dla każdego „Inne” użytkownik UNIX inny niż właściciel/grupy mogli uruchomić sqlplus i dostęp do bazy danych Oracle, odczyt/wykonać uprawnienia są wymagane (Rx) dla tych 4 katalogach:

    $ ORACLE_HOME/bin, $ ORACLE_HOME/lib, $ ORACLE_HOME/oracore, $ ORACLE_HOME/sqlplus

  2. Środowisko. Ustawić te odpowiednio:

    A. ORACLE_HOME (np ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/)

    B. LD_LIBRARY_PATH (np ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/lib)

    C ORACLE_SID

    D. PATH

    export PATH="$ORACLE_HOME/bin:$PATH" 
    
-1

Nie zapomnij

apt-get install libaio1 libaio-dev 

lub

yum install libaio 
0

Wiem, że to stary wątek, ale mam do tego po raz kolejny z Oracle 12c i LD_LIBRARY_PATH został ustawiony prawidłowo. Użyłem strace zobaczyć co dokładnie szukał i dlaczego nie powiodło się:

strace sqlplus /nolog 

SQLPLUS próbuje załadować ten lib z różnych katalogów, niektóre nie istniał w mojej instalacji. Potem próbowałem jednego miałem już na moim LD_LIBRARY_PATH:

open ("/ oracle/product/12.1.0/db_1/lib/libsqlplus.so" O_RDONLY) = -1 EACCES (Permission denied)

Więc w moim przypadku lib miał 740 uprawnień, a ponieważ mój użytkownik nie był właścicielem lub nie miał przypisanej grupy oracle, nie mogłem jej odczytać. Tak prosty pomógł chmod +r.