KNOWLEDGE BASE

Beheben von Oracle-Verbindungsfehlern


Veröffentlicht: 03 May 2017
Zuletzt geändert am: 06 Dec 2019

Problem

Wie werden Oracle-Verbindungsfehler behoben?

Oracle-Treiber erfordern sehr spezifische Verbindungsprotokolle in einem besonderen Format. Die Datei TNSNames.ora ist jedoch nicht immer erforderlich. Wenn Sie beispielsweise nur die von Tableau bereitgestellten Oracle-Dateien installiert haben und keinen eigenständigen Oracle-Client besitzen, verweisen die Oracle-Fehlermeldungen trotzdem auf die Datei TNSNames.ora, wodurch Fehler schwieriger zu beheben sind.

    Umgebung

    • Tableau Desktop
    • Oracle

    Lösung

    Die meisten Oracle-Verbindungsprobleme lassen sich durch eine Korrektur der Pfad- oder Benennungssyntax im Dialogfeld Erweiterte Oracle-Verbindung oder durch Verwendung des vollständigen .WORLD-Datenbanknamens beheben. Wenn sich der Verbindungsfehler hierdurch nicht beheben lässt, gehen Sie die im Anschluss aufgeführten fünf gängigsten Verbindungsfehler durch.

    • ORA-03113: end-of-file on communication channel (Unerwartetes Übertragungsende in Kommunikation)
    • ORA-12154: TNS: could not resolve the connect identifier specified: HOST value incorrect or Global name incorrect or unknown (Angegebener Connect Identifier konnte nicht aufgelöst werden: Der HOST-Wert ist nicht korrekt oder der globale Name ist nicht korrekt oder unbekannt)
    • ORA-12514: TNS listener does not currently know of service requested in connect descriptor: SERVICE value incorrect (Listener kann in Connect-Deskriptor angegebenen Service aktuell nicht auflösen: Falscher SERVICE-Wert)
    • ORA-12541: TNS: no listener: PORT value incorrect (Kein Listener. Falscher PORT-Wert)
    • ORA-00932: inconsistent data types (Inkonsistente Datenypen)

      ORA-03113: end-of-file on communication channel (Unerwartetes Übertragungsende in Kommunikation)

      ORA-03113 ist ein Fehler des Typs Catch-all für alle Probleme, die zur Unterbrechung einer Oracle-Sitzung führen. Dieser Fehler kann mehrere Ursachen haben. Hinweise zur Problembehebung finden Sie in der folgenden Liste.

      • Zur speziellen Oracle-Dokumentation zu diesem Fehler: Mein Oracle-Support.
      • Oracle empfiehlt eine Überprüfung auf Netzwerkprobleme und eine Prüfung der Installation von SQL*Net.
      • Wenn Sie eine Verbindung zu Oracle 9.2.0.5 herstellen, ist die Hauptursache für diesen Fehler in vielen Fällen der Oracle-Bug 3010227. Fordern Sie bei Ihrem Oracle-Datenbankadministrator die Anwendung von Oracle-Patch 9.2.0.6 oder einem anderen für Ihren Server geeigneten Patch an.
      • Stellen Sie den Oracle-Initialisierungsparameter 'STAR_TRANSFORMATION_ENABLED' auf FALSE ein.
      • Ändern der geplanten Uhrzeit der Extraktaktualisierung zu Testzwecken
      • Wenn Sie dieses Problem weitergehend untersuchen möchten, gehen Sie nach dem im Folgenden aufgeführten optionalen Verfahren vor.

      Schritt 1 

      Wählen Sie auf der Startseite von Tableau Desktop Mit Daten verbinden aus.

      Schritt 2 

      Klicken Sie auf der Seite Verbinden auf Oracle und dann auf OK.

      Weitere Informationen zum Durchführen der Verbindungsschritte finden Sie im Thema Oracle-Datenbank in der Desktop-Hilfe.

      Schritt 3 

      1. Zeigen Sie im Verknüpfungsbereich mit der Maus auf die benutzerdefinierte SQL-Tabelle, bis das Bearbeitungssymbol angezeigt wird, und klicken Sie danach auf das Symbol.
      2. Kopieren Sie die Abfrage in das Dialogfeld "Benutzerdefinierte SQL bearbeiten".
      SELECT "NumericBins", "Key" as "Key",
      "NumericBins", "Measure E-2" AS "Measure E-2",
      "NumericBins", "Measure E-1" AS "Measure E-1",
      "NumericBins", "Measure E+0" AS "Measure E+0",
      "NumericBins", "Measure E+1" AS "Measure E+1",
      "NumericBins", "Measure E+4" AS "Measure E+4",
      "NumericBins", "Measure E+7" AS "Measure E+7"
      FROM "TestV1", "NumericBins" "NumericBins"

       
      Wobei "TestV1" der Name der Verbindung in Tableau ist.

      Schritt 4 

      Fügen Sie die Abfrage in eine mit dieser Datenbank verbundene SQL-Sitzung ein, und führen Sie sie aus. Die erwartete Antwort ist Fehler ORA-7445: Ausnahme eingetreten: Core Dump. Hierdurch wird bestätigt, dass wie erwartet das Problem ORA-3113 vorliegt.

      ORA-12154: TNS: could not resolve the connect identifier specified (Angegebener Connect Identifier konnte nicht aufgelöst werden)

      ORA-12154 tritt dann auf, wenn das TNS (Transparent Network Substrate) den Dienstnamen nicht ermitteln kann. Der Dienstname ist in der Datei TNSNames.ora angegeben, die sich im Ordner %ORACLE_HOME%\network\admin\ befindet. Dieser Fehler tritt meist dann auf, wenn die Daten in der Datei TNSNames.ora nicht korrekt sind. Zum Beispiel:

      • Die Erweiterung .world ist im Datenbanknamen nicht enthalten.
      • Die Variable SERVICE_NAME oder HOST ist nicht korrekt.

      Für dieses Problem bestehen nachstehende Lösungsoptionen, die in der angegebenen Reihenfolge durchgeführt werden sollten.

      Option 1: Bearbeiten von TNSNames.ora

      Geben Sie den vollständigen Datenbanknamen mit der Erweiterung .world an den folgenden beiden Stellen an:

      • Datei TNSNames.ora.

        Und

      • Textfeld "Server" der Seite "Verbinden"

      Option 2: Stellen Sie sicher, dass das Konto "Ausführen als Benutzer" von Tableau Server über Berechtigungen für TNSNames.ora verfügt (nur Tableau Server).

      Wenn Sie Tableau Server installiert haben, schließen Sie den folgenden Vorgang ab, um sicherzustellen, dass das Benutzerkonto "Ausführen als" in Tableau Server Berechtigungen für den Speicherort der Datei enthält. Wenn das Benutzerkonto "Ausführen als" über keine Berechtigungen verfügt, kann Tableau Server nicht auf die Oracle-Datenquelldetails zugreifen.

      Schritt 1 

      Prüfen Sie den Speicherort der Datei TNSNames.ora oder der entsprechenden Dateien SQLNET.ora und LDAP.ora auf dem Gerät.

      Hinweis: Die Datei TNSNames.ora befindet sich standardmäßig im Verzeichnis <Oracle-Verzeichnis>\network\admin. Beispiel: C:\Oracle_Client\network\admin.

      Schritt 2 

      Bestätigen Sie, dass die Variable TNS_ADMIN auf den Speicherort der in Schritt 1 beschriebenen Datei bzw. Dateien verweist.

      Hinweis: Um die Variable TNS_ADMIN zu prüfen, klicken Sie auf die Schaltfläche "Start", und wählen Sie Systemsteuerung > System aus. Klicken Sie erst auf Erweiterte Systemeinstellungen, dann auf die Registerkarte Erweitert und danach auf die Schaltfläche Umgebungsvariablen.
      Der Dateipfad für die Systemvariable muss im UNC-Format vorliegen.

      Schritt 3 

      Wählen Sie über die Windows-Startschaltfläche Tableau Server <Version> > Tableau Server konfigurieren aus.

      Schritt 4 

      Kopieren Sie die Daten unter "Server ausführen als Benutzer" in das Textfeld Benutzer.

      Schritt 5 

      Rufen Sie den Ordner auf, in dem die Datei TNSNames.ora gespeichert ist.

      Schritt 6 

      Klicken Sie mit der rechten Maustaste auf den Ordner, und wählen Sie die Option Eigenschaften aus. Klicken Sie auf die Registerkarte Sicherheit und dann auf die Schaltfläche Bearbeiten.

      Schritt 7 

      Klicken Sie unter "Gruppen- oder Benutzernamen" auf die Schaltfläche Hinzufügen.

      Schritt 8 

      Fügen Sie in das Textfeld Geben Sie die zu verwendenden Objektnamen ein die Details zum Benutzerkonto "Ausführen als" ein, die Sie in Schritt 6 kopiert haben.

      Schritt 9 

      Klicken Sie auf OK, wenn Sie fertig sind.

      Schritt 10 

      Achten Sie im Bereich "Berechtigungen" darauf, dass die Kontrollkästchen Vollzugriff und Ändern ausgewählt sind.

      Schritt 11 

      Klicken Sie auf OK, um die Dialogfelder zu schließen.

         

        Option 3: Überprüfen Sie, ob alle Informationen in TNSNames.ora korrekt sind

        Wenn sich das Problem mit den oben aufgeführten Schritten nicht beheben lässt, lesen Sie den Rest des Vorgangs, und führen Sie ihn aus, um sicherzustellen, dass die übrigen Informationen in der Datei TNSNames.ora korrekt angegeben sind.

        Beispiel der Datei TNSNames.ora:

        QAORCL10.world =

        (DESCRIPTION =

        (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = MY_HOST_NAME)(PORT = 1521))

        )

        (CONNECT_DATA =

        (SERVICE_NAME = MY_SERVICE_NAME)

        )

        )

        Die drei für den Vorgang wichtigen Variablen in der Datei heißen HOST, PORT und SERVICE_NAME. Kopieren Sie diese Variablen aus der Datei TNSNames.ora, und halten Sie sie verfügbar. Bei diesen Variablen kommt es auf die Groß- und Kleinschreibung an. In den folgenden Schritten wird beschrieben, wie Sie diese Variablen für Ihre Verbindung abrufen.

        Schritt 1 

        Wählen Sie auf der Startseite von Tableau Desktop Mit Daten verbinden aus.

        Schritt 2 

        Klicken Sie auf der Seite Verbinden auf Oracle.

        Schritt 3 

        Geben Sie die folgenden Informationen aus der Datei TNSNames.ora an:

        • Geben Sie im Textfeld "Servername" den Hostnamen (HOST) ein.
        • Geben Sie im Textfeld "Dienstname" den Dienstnamen (SERVICE_NAME) ein.
        • Geben Sie im Textfeld "Port" die Portnummer (PORT) ein.
        • Geben Sie an, ob die Windows-Authentifizierung oder eine spezifische Kombination aus Benutzername und Kennwort verwendet werden soll, und klicken Sie danach auf Verbinden.

        Hinweis: Bei Variablen ist auf Groß- und Kleinschreibung zu achten.

        Schritt 4 

        Wählen Sie in der Dropdown-Liste "Schema" ein Schema aus, ziehen Sie eine Tabelle in den Verknüpfungsbereich, und klicken Sie dann auf Zum Arbeitsblatt.

        Schritt 5 

        Führen Sie die im Artikel Einrichten einer Oracle-Verbindung zur Verwendung von TNSNames.ora oder LDAP.ora aufgeführten Schritte aus.

        Wichtig: 

        • Achten Sie darauf, die Datei TNSNames.ora in ASCII-Kodierung zu speichern. Eine andere Kodierung wie beispielsweise UTF-8 oder Unicode führt zur Fehlermeldung ORA-12154.
        • Diese Schritte sind in der Regel erforderlich, auch wenn die Oracle-Software bereits auf dem Gerät installiert ist.

        Schritt 6

        Laden Sie die entsprechenden Oracle-Treiber von der Seite Treiber in Tableau herunter, und installieren Sie sie. Ein eventuell bereits installierter Oracle-Treiber ist möglicherweise nicht mit Tableau kompatibel. In diesem Fall müssen Sie ebenfalls die auf der Seite "Treiber" angegebene Version verwenden.

        ORA-12514: TNS listener does not currently know of service requested in connect descriptor (Listener kann in Connect-Deskriptor angegebenen Service aktuell nicht auflösen)

        Dieser Fehler wird in der Regel bei einem falschen SERVICE-Wert angezeigt.

        Um dieses Problem zu beheben, finden Sie den korrekten SERVICE-Wert heraus, und öffnen Sie die Datei TNSNames.ora im Ordner %ORACLE_HOME%\network\admin\. Lesen Sie sich ggf. die Schritte unter ORA_12154 durch.

        ORA-12541: TNS: no listener (Kein Listener)

        Dieser Fehler wird in der Regel bei einem falschen PORT-Wert angezeigt.

        Um diesen Fehler zu beheben, ersetzen Sie den PORT-Wert durch 1521 oder 1526. Verwenden Sie zunächst den Wert, der derzeit nicht verwendet wird.

        ORA-00932: inconsistent data types (Inkonsistente Datenypen)

        Dieser Fehler tritt auf, wenn eine Oracle-Verbindung aufgebaut oder ein Extrakt aus einer Oracle-Datenquelle erstellt wird. Dieser Fehler wird in der Regel durch die Installation falscher Oracle-Treiber verursacht.

        Um dieses Problem zu beheben, installieren Sie die korrekten Oracle-Treiber von der Seite Treiber für die Tableau-Version, die Sie verwenden.

          Zusätzliche Informationen

          Vorschläge

          Wenn auf dem Computer kein Oracle-Client installiert ist, sollten Sie die erforderlichen Dateien von Ihrem Datenbankadministrator anfordern. Wenn der Oracle-Datenverbindungsfehler weiterhin besteht, versuchen Sie Folgendes:

          • Überprüfen Sie den Ordnerpfad zu TNSNames.ora für die Erstellung der Variable TNS_ADMIN.
          • Starten Sie das Gerät neu, damit die Variable TNS_ADMIN erkannt wird.
          • Prüfen Sie, ob der in Tableau verwendete Oracle-Verbindungsname genau mit dem Eintrag "Net Service Name" in TNSNames.ora übereinstimmt. Bei diesem Namen wird die Groß-/Kleinschreibung berücksichtigt.
          • In manchen Fällen muss Windows neu gestartet werden, damit der Oracle-Treiber die Systemvariable TNS_ADMIN erkennt.
          • Wenden Sie sich an die lokale IT, um zu prüfen, ob die Datei TNSNames.ora aktuell ist.
          • Wenn für die Oracle-Verbindung LDAP genutzt wird, achten Sie darauf, die Datei SQLNet.ora sowie die Datei TNSNames.ora einzubeziehen.

          ORA-12154: TNS konnte die Tipps zum Dienstnamen nicht auflösen.

          Hinweis: Trotz unserer Bestrebungen, die Referenzen zu den Inhalten von Drittanbietern auf aktuellem Stand zu halten, können sich die hier aufgeführten Informationen ohne Vorankündigung ändern.


          Über diesen Artikel diskutieren... Feedback-Forum
          Hat dieser Artikel das Problem gelöst?