ORA-12514 TNS:listener kennt derzeit den im Verbindungsdeskriptor angeforderten Dienst nicht

Wir haben eine Anwendung, die lokal läuft, wo wir den folgenden Fehler erleben:

ORA-12514: TNS:listener kennt derzeit den angeforderten Dienst nicht im Verbindungsdeskriptor

Ich habe die Verbindung mit TNSPing getestet, die korrekt aufgelöst wurde. Ich habe versucht, mit SQLPlus eine Verbindung herzustellen, was mit dem gleichen Fehler wie oben fehlschlug. Ich habe diese Syntax für "SQLPlus" verwendet:

sqlplus username/password@addressname[or host name]

Wir haben das überprüft:

  • der TNS Listener auf dem Server läuft.
  • Oracle selbst auf dem Server läuft.

Uns sind keine Änderungen bekannt, die an dieser Umgebung vorgenommen wurden. Gibt es sonst noch etwas, das wir testen können?

Lösung

Ich hatte dieses Problem, und die Lösung bestand darin, in der Datei tnsnames.ora sicherzustellen, dass der SERVICE_NAME ein gültiger Dienstname in Ihrer Datenbank ist. Um gültige Servicenamen herauszufinden, können Sie die folgende Abfrage in Oracle verwenden:

select value from v$parameter where name='service_names'

Sobald ich tnsnames.ora aktualisiert habe, um:

TEST =
   (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = **)(PORT = **))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = **)
    )
)

dann habe ich ausgeführt:

sqlplus user@TEST

Erfolg! Der Listener sagt Ihnen im Grunde, dass der von Ihnen verwendete Dienstname laut DB kein gültiger Dienst ist.

(Ich habe sqlplus von einer Win7-Client-Workstation auf eine entfernte DB ausgeführt und gebe den DBAs die Schuld ;) )

Kommentare (10)

Prüfen Sie, ob die Datenbank läuft. Melden Sie sich auf dem Server an, setzen Sie die Umgebungsvariable ORACLE_SID auf Ihre Datenbank-SID und führen Sie SQL*Plus als lokale Verbindung aus.

Kommentare (1)

Dieser Fehler kann auftreten, wenn eine Anwendung bei jeder Datenbankinteraktion eine neue Verbindung herstellt oder die Verbindungen nicht ordnungsgemäß geschlossen werden. Eines der kostenlosen Tools zur Überwachung und Bestätigung dieses Fehlers ist Oracle Sql Developer (obwohl dies nicht das einzige Tool ist, das Sie zur Überwachung von DB-Sitzungen verwenden können).

Sie können das Tool von der Oracle-Website Sql Developer herunterladen.

Hier ist ein Screenshot, wie Sie Ihre Sitzungen überwachen können. (wenn Sie viele Sitzungen sehen, die sich für Ihren Anwendungsbenutzer anhäufen, während Sie den Fehler ORA-12514 sehen, dann ist das ein guter Hinweis darauf, dass Sie möglicherweise ein Problem mit dem Verbindungspool haben).

Kommentare (0)