KNOWLEDGE BASE

Festlegen einer Oracle-Verbindung für die Verwendung von TNSNames.ora oder LDAP.ora


Veröffentlicht: 29 Nov 2016
Zuletzt geändert am: 18 Dec 2019

Frage

Festlegen einer Oracle-Verbindung für die Verwendung von TNSNames.ora oder LDAP.ora.


Vorteile zum Einstellen von TNSNames.ora- oder LDAP.ora-Verbindungen.

Die folgenden häufigen Oracle-Fehler können korrigiert oder vermieden werden, indem Sie Ihre Datenverbindung dazu einstellen, TNSNames.ora oder LDAP.ora zu verwenden.
  • ORA-12154: TNS: could not resolve the connect identifier specified (Angegebener Connect Identifier konnte nicht aufgelöst werden)

  • 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)

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

  • ORA-12170: TNS: Connect timeout occurred (Verbindungs-Timeout)

  • ORA-12504: TNS listener was not given the SERVICE_NAME in CONNECT_DATA (TNS-Listener hat SERVICE_NAME in CONNECT_DATA nicht erhalten)

Umgebung

  • Tableau Desktop
  • Tableau Server
  • Oracle

Antwort

Bevor Sie die folgenden Schritte befolgen, stellen Sie sicher, dass Oracle Net Service auf dem Computer, der Tableau Desktop oder Tableau Server hostet installiert wurde.

Um Oracle Net Services zu installieren führen Sie das Oracle Database Client Software-Installationsprogramm aus und wählen Sie die Komponente "Oracle Net Services" zur Installation aus.Die Oracle Database Client Software ist in den Installationsmedien verfügbar oder Sie können sie von der Oracle Technology Network Webseite herunterladen.

Mehr Informationen zu Oracle Net Services finden Sie unter Einführung in Oracle Netzwerk-Dienste
 
ZUM ANZEIGEN DER LÖSUNG KLICKEN
Unter Windows

Schritt 1: Überprüfen Sie, ob auf Ihrem Computer eine "TNSNames.ora"-Datei existiert.

Die Datei "TNSNames.ora" befindet sich standardmäßig an folgender Stelle: {oracle directory}\network\admin. Beispiel: C:\Oracle_Client\network\admin
Wenn keine "TNSNames.ora"-Datei auf Ihrem Computer vorhanden ist, erstellen Sie eine Datei mithilfe eines Texteditors. Unten sehen Sie eine mögliche Vorlage für den Eintrag. Die Elemente in eckigen Klammern müssen durch Werte ersetzt werden, die Sie von Ihrem Datenbankadministrator erhalten.

[net_service_name]=
(DESCRIPTION=
  (ADDRESS=[protocol_address_information])
    (CONNECT_DATA= (SERVICE_NAME=[service_name])
     )
  )


Zum Beispiel:
 
Production =
(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = prod.corp.com)(PORT = 1521)
  )
 (CONNECT_DATA =
  (SERVICE_NAME= orcl)
  )
 )

Schritt 2: Legen Sie die TNS_Admin-Umgebungsvariablen fest.

  1. Wählen Sie "Start > Systemsteuerung > System".
  2. Wählen Sie "Erweiterte Systemeinstellungen"
  3. Wählen Sie im Dialogfeld "Systemeigenschaften" die Registerkarte "Erweitert" und dann "Umgebungsvariablen" aus.
  4. Klicken Sie unter "Systemvariablen" auf "Neu". 
  5. Geben Sie im Dialogfeld "Neue Systemvariable" Folgendes ein, und klicken Sie dann auf "OK":
    • Variablenname: TNS_ADMIN 
    • Variablenwert: das Verzeichnis, in dem sich die "TNSNames.ora"-Datei befindet.
  6. Klicken Sie in den Dialogfeldern "Umgebungsvariablen" und "Systemeigenschaften" auf "OK".
  7. Starten Sie Ihren Computer neu, damit die neue Variable erkannt wird.

Schritt 3: Verwenden Sie den Oracle Net Service Name in Tableau.

  1. Schließen Sie alle Tableau-Arbeitsmappen, und öffnen Sie eine neue Instanz von Tableau.
  2. Wählen Sie in Tableau Desktop "Verbindung zu Daten herstellen > Oracle".
    • Geben Sie bei Server den erfassten Oracle-'net_service_name' in die "TNSNAmes.ora"-Datei ein.
    • Geben Sie den entsprechenden Benutzernamen und das Kennwort ein.

Die übrigen Verbindungsdetails aus der "TNSNames.ora"-Datei werden über die Systemvariable TNS_ADMIN kommuniziert. Beachten Sie, dass Sie keinen optionalen Dienstnamen und keine Portinformationen eingeben sollten, da diese Daten Probleme bei der Verbindung aufgrund duplizierter Informationen verursachen könnten.

ZUM ANZEIGEN DER LÖSUNG KLICKEN
Unter Mac

Schritt 1:

  1. Schließen Sie Tableau Desktop, sofern es geöffnet ist.
  2. Vergewissern Sie sich, dass Sie die Oracle-Treiber für Mac von der Seite Treiber in Tableau heruntergeladen und installiert haben.
  3. So kopieren Sie eine vorhandene "LDAP.ora"- oder "TNSNames.ora"-Datei mit Verbindungsinformationen in /etc:
  • Wählen Sie im Finder "Gehe zu > Gehe zu Ordner" aus, und geben Sie "/etc" ein.
  • Kopieren Sie die .ora-Datei in /etc.

Schritt 2: Konfigurieren Sie die TNS_ADMIN-Umgebungsvariable

  1. Öffnen Sie die Terminal-Anwendung auf dem Mac-Computer, und geben Sie den folgenden Befehl ein: 

    sudo nano /etc/launchd.conf

    Hinweis: Nano ist ein textbasierter Editor, der auf sämtlichen Mac-Computern verfügbar ist.

  2. Geben Sie Ihr Kennwort ein, wenn Sie dazu aufgefordert werden.

  3. Geben Sie folgenden Befehl ein:

    launch setenv TNS_ADMIN /etc

  4. Drücken Sie Strg-X und dann Y und die Eingabetaste, um die Änderungen zu speichern und Nano zu beenden.
  5. Starten Sie Ihren Mac neu.

Schritt 3: Prüfen Sie, ob die Variable TNS_ADMIN festgelegt wurde: 

  1. Öffnen Sie die Terminal-Anwendung auf dem Mac-Computer, und geben Sie den folgenden Befehl ein: 

    export

  2. Ihnen wird eine Liste aller Systemvariablen angezeigt. Suchen Sie nach:

    declare -x TNS_ADMIN="/etc"

  3. Vergewissern Sie sich, dass die DNS-Auflösung für den in der .ora-Datei aufgeführten Hostnamen funktioniert, indem Sie den Hostnamen in Terminal oder Network Utility pingen.Verwenden Sie einen vollständig qualifizierten Domänennamen wie servername.domäne.com anstelle eines einfachen Servernamens.
Sie sollten dazu in der Lage sein, Tableau Desktop auf Ihrem Mac zu starten und eine Verbindung zur Oracle-Datenbank herzustellen, indem Sie lediglich den Servernamen aus der "TNSNames.ora"- oder "LDAP.ora"-Datei angeben.
 
ZUM ANZEIGEN DER LÖSUNG KLICKEN
Unter Linux

Zusammenfassung der Schritte:

  1. Kopieren Sie die tnsnames.ora Datei zu einem Speicherort, auf die der Tableau-Benutzer Zugriff hat
  2. Stellen Sie die Berechtigungen auf der Datei ein.
  3. Aktualisieren Sie falls nötig die TNS_ADMIN-Umgebungsvariable, sodass es zum Directory in Schritt (1) weist.

Schritt 1: Kopieren Sie die tnsnames.ora Datei zu einem Directory, auf die der unbefugte Benutzer (Tableau) Zugriff hat

Für Versionen 2019.3.x und höher:
Kopieren Sie die tnsnames.ora Datei zum /etc Directory.
Für Versionen 2019.2.x und früher:
Standardmäßig wird der unbefugte Benutzer 'Tableau' genannt.Alle Tableau Server-Prozesse, die mit diesem Konto ausgeführt werden, müssen dazu fähig sein die tnsnames.ora Datei zu finden, um Sie zu verwenden.
Falls Sie den Oracle-Connector bereits installiert haben, dann empfehlen wir Ihnen, die Datei zum Directory /opt/tableau/tableau_driver/oracle zu kopieren.
Sie können bestätigen, dass das Directory dem Benutzer zugänglich ist, indem Sie 'su' verwenden, um zum Konto zu wechseln und zum Directory zu wechseln.Zum Beispiel:
sudo su tableau
cd /opt/tableau/tableau_driver/oracle
Falls diese Schritte in einem "Zugriff verweigert" Fehler resultieren, dann müssen Sie die Berechtigungen im Directory, das Sie verwenden, updaten.

Schritt 2: Stellen Sie die Berechtigungen für die tnsnames.ora Datei ein

2019.2.x und früher, folgen Sie die Schritte unten:
  1. Navigieren Sie zum Verzeichnis, in dem sich die Datei tnsnames.ora befindet.
  2. Gewähren Sie über den folgenden Befehl Berechtigungen für die Datei: chmod 666 tnsnames.ora
  3. Prüfen Sie die Dateiberechtigungen über folgenden Befehl: ls -l
Hinweis: Der Umgebungspfad sollte keinen nachgestellten Schrägschritt haben. Falls das Format des Pfades fehlerhaft ist, dann können Benutzer möglicherweise auf einen ORA-12154 Fehler stoßen.

2019.3 und neuer:
Da tabsvc auf Linux nicht länger vorhanden ist, sind die Schritte oben nicht mehr anwendbar.Platzieren Sie stattdessen die tsnames.ora Datei im /etc-Directory auf dem Linux-Computer. Keine Umgebungsvariable benötigt.

Schritt 3: Stellen Sie die TNS_ADMIN-Umgebungsvariable ein, sodass es zum Directory in Schritt (1) weist

Für Versionen 2019.3.x und höher: Sie können diesen Schritt überspringen. Keine Umgebungsvariable wird erfordert.
Für Versionen 2019.2.x und früher:
  1. Öffnen Sie in einem Texteditor die Datei, die Ihrer Version von Tableau Server entspricht:
    • Tableau Server 10.5.x -- /etc/systemd/system/tabsvc_0.service
    • ​​Tableau Server 2018.1.x - 2019.2 --  /var/opt/tableau/tableau_server/.local/share/systemd/user/tabsvc_0.service
  2. Fügen Sie die folgende Zeile hinzu, wo "/path/to/file-folder" das Directory ist, zude m Sie tnsnames.ora in Schritt 1 kopiert haben:
Environment=TNS_ADMIN=/path/to/file-folder
  1. Speichern Sie die Änderungen in der Datei.

Hinweis:Der Umgebungspfad sollte keinen nachgestellten Schrägschritt haben. Falls das Format fehlerhaft ist, dann können Benutzer möglicherweise auf einen ORA-12154 Fehler stoßen.

Optionale Schritte

Finden von tnsnames.ora Dateien

Falls der Oracle-Client auf Ihrem Server installiert ist, dann befindet sich die tnsnames.ora Datei im folgenden Directory: $ORACLE_HOME/network/admin.
Sie können mit den folgenden Befehlen überprüfen, ob diese Datei existiert:

echo $ORACLE_HOME 
druckt den Dateipfad aus.

sudo find / -iname tnsnames.ora
listet die Speicherorte aller tnsnames.ora-Dateien in Ihrem Dateisystem auf.

Hinweis: Der Oracle-Client muss nicht installiert sein, um tnsnames.ora mit Tableau Server zu verwenden. Dieser Schritt besteht, um Ihnen zu helfen mit einer bestehenden Installation zu arbeiten.

Eine neue tnsnames.ora Datei vom Beginn an erstellen

Falls keine tnsnames.ora Datei auf diesem Computer vorhanden ist und Sie keine aus einem Client-Arbeitsplatz kopieren können, dann können Sie diese mit einem Texteditor erstellen. Beachten Sie die folgenden Einschränkungen:

  • Bei der Datei "tnsnames.ora" wird die Groß- und Kleinschreibung berücksichtigt, die Bezeichnung muss in Kleinbuchstaben erfolgen. 

  • Die Datei sollte kein Tabulatorabstände verwenden.

Unten sehen Sie eine mögliche Vorlage für den Eintrag. Die Elemente in eckigen Klammern müssen durch Werte ersetzt werden, die Sie von Ihrem Datenbankadministrator erhalten.
Hinweis: Für die Datei "TNSNames.ora" ist unter Windows oder Mac kein ADDRESS_LIST-Eintrag erforderlich. Unter Linux wird diese Variable in der Datei "tnsnames.ora" allerdings benötigt.
 

[net_service_name]=
(DESCRIPTION=
  (ADDRESS_LIST=
    (ADDRESS=[protocol_address_information])
   )
  (CONNECT_DATA= 
    (SERVICE_NAME=[service_name])
   )
 )

Zum Beispiel:

Production =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = prod.corp.com)(PORT = 1521)
   )
  (CONNECT_DATA = 
    (SERVICE_NAME = orcl)
   )
 )

Hinweis: Wenn Sie SSL auf Oracle konfiguriert haben, siehe die zusätzlichen Schritte unten.

Zusätzliche Informationen

Zusätzliche Konfigurationsschritte, wenn Sie SSL auf Oracle konfiguriert haben

ORACLE_HOME und TNS_ADMIN für Oracle konfigurieren (Mit SSL auf Oracle konfiguriert)

sudo su -l tableau
      touch /var/opt/tableau/tableau_server/.config/systemd/tableau_server.conf.d/oracle.conf
      echo "ORACLE_HOME=/u01/app/oracle/product/12.1.0/client_1" | tee -a /var/opt/tableau/tableau_server/.config/systemd/tableau_server.conf.d/oracle.conf
      echo "TNS_ADMIN=/u01/app/oracle/product/12.1.0/client_1/network/admin" | tee -a /var/opt/tableau/tableau_server/.config/systemd/tableau_server.conf.d/oracle.conf 
      chmod 744 /var/opt/tableau/tableau_server/.config/systemd/tableau_server.conf.d/oracle.conf
exit

cd /opt/tableau/tableau_server/packages/scripts.near.xx.xxxx.xxxx/
            sudo ./stop-administrative-services
            sudo ./start-administrative-services
source /etc/profile.d/tableau_server.sh


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