Połącz się z sql plus z linii poleceń za pomocą ciągu połączenia

41

Powiedzmy, że mam bazę danych Oracle. Mam nazwę użytkownika = x, hasło = y, baza danych = z. Znam też port = a, SID = b, nazwa hosta = c.

Jak mam się prawidłowo połączyć? Użyłem wielu opcji, takich jak:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))

Przesłanie tych wierszy poleceń zwykle powoduje zwrot komunikatów o błędach, takich jak:

ORA-12560: TNS: błąd adaptera protokołu
ORA-12514: TNS: odbiornik obecnie nie zna usługi

Z góry bardzo dziękuję!!

Edvinas
źródło
3
Zakładając, że masz właściwy host / port, wydaje mi się, że instancja nie działa lub nie jest zarejestrowana w nasłuchiwaniu.
Colin 't Hart
1
za pomocą ezconnect:sqlplus x/y@c:a/b
Dieter DHoker
1
dla przypomnienia, twój drugi przykład (przynajmniej) działa dla mnie, jeśli otoczę go cytatami. jak x @ "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = c) (PORT = a)) (CONNECT_DATA = (SID = b)))"
rogerdpack
Otwórz -> usługi w oknie Start-> oracleservicexe To działa dla mnie.
Prakash

Odpowiedzi:

74

Próbowałeś

sqlplus username/password@host:port/service
sqlplus x/y@c:a/b

nowoczesne wersje sqlplus (wersja 11 lub nowsza) rozumieją tę składnię i nie potrzebujesz pliku tnsnames.ora.

Hanspeter Oberlin
źródło
2
Działa idealnie
Gajotres
4
która wersja Nie działa dla mnie na CentOS ERROR: ORA-12154: TNS: nie można rozwiązać określonego identyfikatora połączenia
Edmondo1984,
Domyślny numer portu: 1521
Ivan Chau,
4
Mam SID zamiast usługi, więc użycie „:” zamiast „/” zadziałało dla mnie sqlplus nazwa użytkownika / hasło @ host: port: sid
Pratik Goenka
1
sqlplus, który jest dostarczany z v11.2.0.1.0, nie obsługuje host:portskładni. Wydaje się, że 11.2.0.4.0już obsługuje ...
gavenkoa
12

Najprostszym jest użycie pliku tnsnames.ora do połączenia z bazą danych. W tym celu dokonaj edycji i dodaj nowy wpis: ten plik zwykle znajduje się w katalogu $ ORACLE HOME \ NETWORK \ ADMIN.

myDb  =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
   )
 (CONNECT_DATA =
   (SERVICE_NAME =b)
 )
)

a następnie możesz połączyć się z db:

sqlplus x / y @ myDb

eliatou
źródło
Aby uniknąć hasła w wierszu polecenia, zobacz łącza w komentarzach tutaj: serverfault.com/a/87038/27813
rogerdpack
7

Do oryginalnego plakatu ... w pierwszej opcji pominąłeś nawias zamykający

Niepoprawnie: (Twój ciąg)

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

Poprawny:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED))))'
O. Godoy
źródło
2

Twoja linia sqlplus wygląda poprawnie, sprawdź następujące:

  1. Możesz połączyć się jako sysdba na samym serwerze bazy danych.
  2. Możesz połączyć się jako użytkownik, z którym próbujesz, na samym serwerze bazy danych.
  3. Możesz pingować serwer bazy danych z komputera, z którego próbujesz się połączyć.
  4. Możesz tnspingować słuchacza z komputera, z którego próbujesz się połączyć.

Jeśli wszystkie te elementy się sprawdzą, możesz utworzyć nową linię połączenia, aby upewnić się, że nie masz literówki.

Leigh Riffel
źródło
1

Może twoja baza danych nie działa. Jeśli komputer został zrestartowany, a instancja nie jest ustawiona na autostart (i nie została uruchomiona ręcznie), może być konieczne samodzielne uruchomienie usługi.

Jeśli masz dostęp do ekranu Usługi, możesz to zrobić z tego miejsca; lub możesz to zrobić z wiersza poleceń.

Przejdź do wiersza poleceń i wprowadź następujące polecenia:

set oracle_sid=ORCL

net start oracleserviceORCL

Pierwszy ustawia SID Oracle; drugi faktycznie uruchamia usługę.

Karthick
źródło
0

wyciąg z pomocy sqlplus:

może być w formie Net Service Name lub Easy Connect.

  @[<net_service_name> | [//]Host[:Port]/<service_name>]
użytkownik82219
źródło
-2

Przekonałem się, że łatwo jest nawiązać połączenie ze zdalnym pulpitem i otworzyć wiersz polecenia, a następnie połączyć:

sqlplus sys/YourPassword as sysdba

Kelly
źródło
-3

Powinieneś uruchomić usługi swoich baz danych. W tym celu przejdź do menu Start -> Uruchom i uruchom services.mscNastępnie wyszukaj tam usługi baz danych i uruchom je. Następnie zacznie działać.

użytkownik139417
źródło
-4

Działa to dla mnie na Oracle 11G

sqlplus orcl_usr/orcl_usr_pass@host/sid
Agron Daka
źródło