Frage

Mein Ziel ist es zu einer Oracle 9i-Instanz von meinem O X-Rechner zu verbinden. Ich habe die Installationsanweisungen hier und bekam durch sie ohne Fehler (schließlich). Allerdings bin ich, dass sqlplus zu finden, ist keine Verbindung herstellen:

[ ethan@gir ~ ]$ sqlplus xxx/yyy@zzz

SQL*Plus: Release 10.2.0.4.0 - Production on Fri Apr 17 10:13:08 2009

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

looooong wait ...

ERROR:
ORA-12170: TNS:Connect timeout occurred

Enter user-name: xxx
Enter password: 
ERROR:
ORA-12162: TNS:net service name is incorrectly specified

Enter user-name:

Meine tnsnames.ora Datei ...

zzz =
  (DESCRIPTION = 
    (ADDRESS_LIST =
      (ADDRESS =
        (PROTOCOL = TCP)
        (HOST = dbhost)
        (PORT = 1521))
    )
  (CONNECT_DATA =
    (SERVICE_NAME = zzz)
  )
)

Vielleicht gibt es eine Umgebungsvariable, die eingestellt werden muss?


UPDATE

Able DB Host-Maschine kein Problem ping.

Versuchte ...

sqlplus xxx/yyy@//dbhost/zzz

Got ...

ERROR:
ORA-12170: TNS:Connect timeout occurred

Versuchte SID anstelle von SERVICE_NAME in tnsnames.ora. Haben Sie nicht scheinen, um das Ergebnis zu ändern. Kehrte zurück zu SERVICE_NAME.


Letzten paar Einträge in sqlnet.log ...

***********************************************************************
Fatal NI connect error 12170.

  VERSION INFORMATION:
    TNS for MacOS X Server: Version 10.2.0.4.0 - Production
    TCP/IP NT Protocol Adapter for MacOS X Server: Version 10.2.0.4.0 - Production
  Time: 17-APR-2009 10:33:06
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535
    TNS-12535: Message 12535 not found; No message file for product=network, facility=TNS
    ns secondary err code: 12560
    nt main err code: 505
    TNS-00505: Message 505 not found; No message file for product=network, facility=TNS
    nt secondary err code: 60
    nt OS err code: 0


***********************************************************************
Fatal NI connect error 12170.

  VERSION INFORMATION:
    TNS for MacOS X Server: Version 10.2.0.4.0 - Production
    TCP/IP NT Protocol Adapter for MacOS X Server: Version 10.2.0.4.0 - Production
  Time: 17-APR-2009 11:24:08
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535
    TNS-12535: Message 12535 not found; No message file for product=network, facility=TNS
    ns secondary err code: 12560
    nt main err code: 505
    TNS-00505: Message 505 not found; No message file for product=network, facility=TNS
    nt secondary err code: 60
    nt OS err code: 0

teilweise Antwort

Vielen Dank allen für Ihre Antworten. Sie waren hilfsbereit. Ich fand, dass es ein DNS-Problem war. Ich konnte durch den Hostnamen anpingen, so dachte, dass sollte gut funktionieren. Ich habe auch versucht i.p. Adresse. Es stellte sich heraus, dass ich brauchte, die interne "10.1.x.x" i.p. Adresse für sie auf diesem O X-Rechner zu arbeiten (aber Hostname ist in Ordnung unter Windows).

An diesem Punkt kann ich eine Verbindung mit ...

sqlplus xxx/yyy@//INTERNAL_IP/zzz

Doch mit diesen Werten in tnsnames.ora eingegeben, dies immer noch nicht funktioniert ...

sqlplus xxx/yyy@zzz

...

ORA-12154: TNS:could not resolve the connect identifier specified

ich für eine Probe tnsnames.ora Datei gesucht, die zu nahe waren, was ich brauchte und kopierten den Inhalt in meine Datei. Geändert, um die params und jetzt alles funktioniert. Nicht sicher, warum ich war nicht funktioniert.

War es hilfreich?

Lösung

Da Sie einen 10g-Client verwenden, ist es ratsam, Easy Connect Syntax verwenden statt:

export TWO_TASK=//dbhost/zzz
sqlplus xxx/yyy

oder gerade dies:

sqlplus 'xxx/yyy@//dnhost/zzz'

Auch Ihre ORACLE_HOME Punkte in den richtigen Ordner überprüfen: tnsnames.ora in $ORACLE_HOME/network/admin/tnsnames.ora gesucht

Andere Tipps

Ihre Klammern scheinen korrekt.

Versuchen Sie, die SID mit:

Das folgende ist ein Beispiel für eine Datei tnsnames.ora:

IDENTIFIER =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP) (HOST = userid.myhosteddb.net)(PORT = 1521))
    )
    (CONNECT_DATA = (SID = odb))
  )

Lesen Sie mehr über SID hier.

Sie können mit

sqlplus user/password@servicename_host

Wenn Sie keine Verbindung herstellen können Sie verwenden können,

sqlplus user/password@(DESCRIPTION=((ADDRESS=(PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))(CONNECT_DATA=(SERVICE_NAME = zzz)))

Wenn Sie Linux verwenden, eine andere * Nix OS müssen Sie Anführungszeichen verwenden sonst die () werden von der Shell interpretiert

z

sqlplus user/password@'(DESCRIPTION=((ADDRESS=(PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))(CONNECT_DATA=(SERVICE_NAME = zzz)))'

Es ist wahrscheinlich eine sqlnet.log Datei in Ihrem Arbeitsverzeichnis erzeugt wird. Dies kann Ihnen helfen, oder wenn Sie den Inhalt veröffentlichen könnte es uns weitere Informationen geben.

In Ihrem Beispiel versucht man zwei verschiedene Dinge. Auf der Kommandozeile verwendet, um Sie „xxx / yyy @ zzz“. Es sieht aus wie das ist den „zzz“ Eintrag in tnsnames.ora erfolgreich zu finden, aber das Timeout gibt an, dass es auch immer aus dem Server keine Antwort erhält. Können Sie erfolgreich ping dbhost?

Auf dem zweiten Versuch die Sie gerade eingegeben „xxx“ für den Benutzernamen; das macht Sinn, wenn man nicht daran gewöhnt, SQLPlus sind, aber wie Sie sehen können es keinen Punkt, wo Sie aufgefordert, den Namen der Datenbank. Also in diesem Fall wurde versucht, ohne einen Dienstnamen „xxx / yyy“ zu verbinden, auf den zweiten Fehler führt. Dies bedeutet nur, dass Sie nicht über einen Standard-Service-Namen eingerichtet haben. Also dieser Fehler kommt aus einer unvollständigen Eingabe. (Sie würden „xxx @ zzz“ für den Benutzernamen eingeben den Namen des Dienstes an dieser Eingabeaufforderung angeben. Sie können tatsächlich die gesamte Verbindungszeichenfolge „xxx / yyy @ zzz“ an der Benutzereingabeaufforderung eingeben, wenn Sie das Passwort Wesen nichts ausmacht sichtbar.)

Haben Sie versucht, telnet auf den offen Port zu bekommen, um sicherzustellen, dass eine Firewall nicht blockiert? kann einen Versuch Telnet-Port-num Host wert sein

Haben Sie Ihre Umgebung mit der oraenv Skript?

Haben Sie tnsping versucht?

$ tnsping $ORACLE_SID

Vielleicht wird es helfen, die Ausgabe auf einer Maschine zu vergleichen, die mit dem Ausgang auf einer Maschine keine Verbindung, die keine Verbindung herstellen kann. Zumindest ist das, was ich tue, kurz bevor unsere DBA Kontakt gebracht wird.

Sie können etwas ausführlicher auf dem bekommen, was der Fehler mit dem oerr Befehl:

$ oerr ora 12170
12170, 00000, "TNS:Connect timeout occurred"
// *Cause:  The server shut down because connection establishment or
// communication with a client failed to complete within the allotted time
// interval. This may be a result of network or system delays; or this may
// indicate that a malicious client is trying to cause a Denial of Service
// attack on the server.
// *Action: If the error occurred because of a slow network or system,
// reconfigure one or all of the parameters SQLNET.INBOUND_CONNECT_TIMEOUT,
// SQLNET.SEND_TIMEOUT, SQLNET.RECV_TIMEOUT in sqlnet.ora to larger values.
// If a malicious client is suspected, use the address in sqlnet.log to
// identify the source and restrict access. Note that logged addresses may
// not be reliable as they can be forged (e.g. in TCP/IP).

Ich hatte ein ähnliches Problem und es scheint, dass Oracle sqlplus war das Problem!

Anschließen wie eine dieser Arbeiten:

   > sqlplus MyUsername/MyPassword@MyHostname:1521/MyServiceName
   > sqlplus MyUsername/MyPassword@//MyHostname:1521/MyServiceName

(die // ist optional vor dem Hostnamen). Allerdings Passwort Weglassen oder beide Benutzer / Pass ausfällt wie folgt aus:

    sqlplus @//MyHostname:1521/MyServiceName

    SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 2 15:59:49 2015

    Copyright (c) 1982, 2013, Oracle.  All rights reserved.

    SP2-0310: unable to open file "//MyHostname:1521/MyServiceName.sql"
    Enter user-name: MyUsername
    Enter password: MyPassword
    ERROR: 
    ORA-12162: TNS:net service name is incorrectly specified

Also, auch wenn sqlplus fragt Sie nach dem Benutzername / Passwort, wird es dummerweise mit einer falschen Fehlermeldung fehlschlagen, wenn Sie sie eingeben an der Eingabeaufforderung in. Es funktioniert nur, wenn man sie platzieren (beide!) Am Anfang der Verbindungszeichenfolge.

  

Dumme Oracle !!!

FOLLOW THIS LINK FÜR SCHRITT FÜR SCHRITT Installation und Installationsverfahren POST .. vorsicht mit.

Und mit SQL verbinden Plus:

  1. WiLL NUTZERNAME System BE LAUT BETRIEB oben angegebenen Link
  2. Ihr Passwort darf nicht Tiger, aber die, die Sie zu Beginn der Installation gesetzt

P. S: nicht Panik, wenn Sie Problem (Browser-Unverträglichkeit) verbindet Oracle Enterprise Manager zu finden, während der Installation zu testen, ob Ihr Browser Google Chrome. trifft die Rückseite Pfeil und nächste Seite Pfeil zustimmen Bedingungen und auf OK klicken.

Ich löste dieses Problem auf meinem Rechner in einem Tag .. aber es wird eine Frage des paar hors für Sie sein.

soruces: i am Informatik-Ingenieure meist Code in Java

hatte ich den gleichen Fehler (ORA-12162: TNS: net-Service-Name falsch angegeben ist), aber einen anderen Grund (unter Windows 7 Enterprise 64-Bit). Hoffe, das hilft jemand:

I.T. bei meiner Arbeit installierte 32bit und 64bit Oracle und basierte auf meinem PATH-Variable, sah die Schale in dem 64-Bit-Pfad für SQLPLUS.exe im Vergleich zu dem 32-Bit-Pfad.

Die verschiedenen Pfade verwenden unterschiedliche TNSNAMES.ora Dateien und ich habe nicht meine Verbindungszeichenfolge in der 64-Bit-Pfad:

Oracle \ product \ 11.1.0 \ client_1_64bit \ network \ admin \ TNSNAMES.ora

Ich hatte nur die Verbindungszeichenfolge in den 32-Bit-TNSNAMES.ora: Oracle \ product \ 11.1.0 \ client_1_32bit \ network \ admin \ TNSNAMES.ora

Auch, weil es mehrere ORACLE-Installationen waren ich die Variable ORACLE_HOME Umgebung entfernen musste, so dass beide Installationen verschiedene Home-Verzeichnisse verwenden können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top