Chcę połączyć się z bazą danych Oracle na innym hoście za pomocą narzędzia sqlplus. Ta strona sugerowała dodanie elementu do moich nazw tnsn, aby połączyć się z tą bazą danych
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
a następnie użyj tego w sqlplus
sqlplus user/pass@local_SID
Jednak w moich okolicznościach modyfikacja lokalnych nazw tns nie jest możliwa. Czy można połączyć się ze zdalną bazą danych za pomocą argumentu sqlplus bez konieczności zmiany nazw tnsn? Coś jak
sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
database
wciąż istnieje alias TNS, który musi istnieć wtnsnames.ora
, więc jest taki sam, jak Louis próbował tego uniknąć?Odpowiedzi:
Może i może to zależeć od używanego środowiska wiersza poleceń, musisz zacytować ciąg, coś w rodzaju
lub
źródło
Możesz użyć do tego łatwego połączenia :
Aby umożliwić łatwe połączenie na komputerze, musisz dodać go do
NAMES.DIRECTORY_PATH
pliku sqlnet.ora, np .:Jeśli Twój odbiornik korzysta z portu innego niż domyślny, użyj portu
[email protected]:port/...
.W rzeczywistości wydaje się, że musisz podać nazwę usługi, a nie SID; mogą być takie same, ale jeśli nie, musisz je uzyskać z serwera.
źródło
Utwórz kopię pliku tnsnames.ora w katalogu, w którym możesz pisać, odpowiednio zmodyfikuj plik, a następnie ustaw zmienną środowiskową TNS_ADMIN na lokalizację tego katalogu.
na przykład:
źródło
W systemie Unix / Linux możesz użyć plików konfiguracyjnych na poziomie użytkownika, aby zastąpić wpisy na poziomie systemu.
Pliki konfiguracji na poziomie systemu można znaleźć w katalogu
$TNS_ADMIN
. Jeśli zmiennaTNS_ADMIN
nie jest ustawiona, są one wyszukiwane w katalogu$ORACLE_HOME/network/admin
.Pliki konfiguracyjne na poziomie użytkownika nie zastępują plików konfiguracyjnych na poziomie systemu jako całości (ponieważ
TNS_ADMIN
katalog zastępuje cały$ORACLE_HOME/network/admin
katalog), ale dodają lub zmieniają wpisy plików konfiguracyjnych na poziomie systemu. Jeśli pozycja znajduje się w pliku konfiguracyjnym na poziomie użytkownika, wówczas jest ona używana, jeśli nie istnieje w pliku konfiguracyjnym na poziomie użytkownika, wówczas używana jest pozycja pliku konfiguracyjnego na poziomie systemu.źródło