Lösung für “ORA-12514 TNS Listener Does Not Currently Know of Service Requested”. Kostenlose sofortige Unterstützung




Lösung für “ORA-12514 TNS Listener Does Not Currently Know of Service Requested”. Kostenlose sofortige Unterstützung






Lösung für den Fehler ORA-12514: "TNS: Listener Does Not Currently Know of Service Requested"

Wie Sie den Oracle-Fehler ORA-12514 beheben: Schritt-für-Schritt-Anleitung zur Überprüfung der Listener-Konfiguration, Korrektur der TNSNAMES.ORA-Datei, Analyse von Listener-Logs, manueller Registrierung der Instanz und weiteren Ansätzen zur Problemlösung. Nutzen Sie unseren kostenlosen Chatbot, um technische Probleme effizient zu lösen.

Zusammenfassung der wichtigsten Erkenntnisse für den Fehler ORA-12514

Schritt Zweck
1. Prüfen der Listener-Konfiguration Sicherstellen, dass der Listener den angeforderten Dienstnamen erkennt.
2. Überprüfen der TNSNAMES.ORA Fehlerhafte oder fehlende Einträge im TNSNAMES.ORA-File finden und korrigieren.
3. Analyse der Listener-Logs Probleme wie fehlende Dienstregistrierungen oder Netzwerkprobleme diagnostizieren.
4. Manuelle Registrierung der Instanz Direktes Registrieren der Datenbank, um sie im Listener verfügbar zu machen.
5. Warten und erneut versuchen Ermöglicht der Datenbank-Instanz, sich vollständig zu initialisieren.
6. Firewall- und Netzwerkprüfung Sicherstellen, dass keine Netzwerkprobleme die Verbindung stören.
7. Neustart des Listeners und Datenbankinstanzen Nach Korrekturen sicherstellen, dass alle Prozesse neu gestartet werden.

Schritt-für-Schritt-Anleitung zur Lösung des Fehlers ORA-12514: “TNS: Listener Does Not Currently Know of Service Requested”

1. Überprüfen der Listener-Konfiguration

Schritt:

  • Öffnen Sie die Eingabeaufforderung und führen Sie den folgenden Befehl aus:
    lsnrctl status
    

    Dieser zeigt alle von Ihrem Listener bekannten Dienste an.

Zweck:

  • Stellen Sie sicher, dass der von Ihnen angeforderte Dienstname (z.B. adapter) in der Liste aufgeführt ist.

Tipp: Falls der Listener nicht läuft, starten Sie ihn mit:

lsnrctl start

2. Überprüfen der TNSNAMES.ORA-Datei

Schritt:

  • Navigieren Sie zum Standort Ihrer Datei tnsnames.ora. Typische Speicherorte sind:
    • Windows: C:\app\[Benutzer]\product\[Version]\client_1\Network\Admin\
    • Linux/Unix: /etc/oracle/network/admin/

Stellen Sie sicher, dass die Einträge korrekt sind, z. B.:

ORAADAPTER =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.117)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = adapter)
    )
  )

Zweck:

  • Ein fehlerhaft eingetragener Name oder falsche Konfiguration in der TNSNAMES.ORA führt häufig zu Fehlern.

3. Überprüfen der Listener-Log-Dateien

Schritt:

  • Analysieren Sie die Protokolldateien des Listeners, die sich meist im Oracle-Diagnose-Verzeichnis befinden, z.B.:
    • Dateipfad: $ORACLE_HOME/diag/tnslsnr/hostname/listener/alert/log.xml

Suchen Sie nach Fehlern wie “Service not registered” oder ähnlichen Hinweisen, die auf Registrierungskonflikte hindeuten können.

4. Manuelle Registrierung der Datenbank-Instanz

Schritt:

  1. Öffnen Sie die Oracle SQL*Plus-Sitzung auf dem Server, auf dem die Datenbank installiert ist:
    sqlplus / as sysdba
    
  2. Geben Sie den folgenden Befehl ein, um die Instanz manuell zu registrieren:
    ALTER SYSTEM REGISTER;
    

Zweck:

  • Dies ist hilfreich, wenn die Instanz sich nicht automatisch beim Listener registriert.

5. Wartezeit und erneuter Verbindungsversuch

Schritt:

  • Geben Sie der Datenbank nach einer Registrierung einige Minuten Zeit. Manche Instanzen benötigen eine kurze Initialisierungszeit.

Zweck:

  • Gewährleistet, dass die Datenbank vollständig hochgefahren und für Anfragen bereit ist.

6. Überprüfen der Firewall- und Netzwerk-Konfiguration

Schritt:

  • Überprüfen Sie, ob Ihre Firewall die Ports blockiert, die vom Oracle Listener-Dienst genutzt werden (standardmäßig Port 1521).
  • Testen Sie die Verbindung mit:
    ping [server-hostname]
    telnet [server-hostname] 1521
    

Zweck:

  • Netzwerkprobleme können das Handshake zwischen Client und Listener verhindern.

Tipp: Nutzen Sie Tools wie einen VPN (NordVPN) für sicheres Debugging über entfernte Netzwerke.


7. Neustarten des Listeners und Datenbank-Instanzen

Schritt:

  1. Stoppen und starten Sie den Listener Dienst:
    lsnrctl stop
    lsnrctl start
    
  2. Starten Sie die Datenbank-Instanz:
    sqlplus / as sysdba
    SHUTDOWN IMMEDIATE;
    STARTUP;
    

Zweck:

  • Dies hilft oft, alle Änderungen zu aktivieren und sicherzustellen, dass Listener und Datenbank synchron sind.

Häufig gestellte Fragen (FAQ)

1. Was bedeutet der Fehler ORA-12514?

Der Fehler ORA-12514 weist darauf hin, dass der Oracle Listener den angeforderten Service (Datenbankname) nicht kennt. Häufige Gründe sind Konfigurationsfehler oder nicht registrierte Datenbankinstanzen.

2. Wie stelle ich sicher, dass mein Dienstname korrekt ist?

Vergleichen Sie die Werte in Ihrer TNSNAMES.ORA-Datei mit den von lsnrctl status zurückgegebenen Werten. Der SERVICE_NAME in Ihrem TNSNAMES-Eintrag sollte mit den registrierten Diensten übereinstimmen.

3. Wie behebt man dynamische Registrierungsprobleme?

Fügen Sie in der Datei “init.ora” oder “spfile” Ihrer Datenbank den Parameter local_listener explizit hinzu:

ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=[hostname])(PORT=1521))';

Verwenden Sie danach den Befehl ALTER SYSTEM REGISTER;.

4. Welche Tools können bei der Netzwerk-Fehlerbehebung helfen?

  • Ping und Telnet sind nützlich, um Verbindungen zu testen.
  • Ein VPN wie NordVPN kann Firewall/Netzwerk-Einschränkungen umgehen.

5. Kann ORA-12514 durch Firewall-Probleme verursacht werden?

Ja. Wenn der Listener-Port (z.B. 1521) blockiert wird, kann der Client keine Verbindung zum Dienst herstellen.


Fachkundiger Tipp:

Wenn Sie häufig mit dem Fehler ORA-12514 konfrontiert sind, implementieren Sie ein Überwachungsprotokoll für Ihren Oracle Listener. Konsistente Einstellungen in Ihrer TNSNAMES.ORA und SYSTEM-Parameter wie SERVICE_NAMES helfen Ihnen auch, zukünftige Probleme zu vermeiden.