Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verbinden von Oracle mit SQL Server von Windows

Verbinden Sie Oracle-Anwendungen unter Windows mit SQL Server.

Sie können Oracle Database Gateway for ODBC (DG4ODBC) und den SQL Server ODBC-Treiber verwenden, um Oracle mit SQL Server zu verbinden.

DG4ODBC ist Teil von Oracle 11g und höher ohne zusätzliche Kosten und ist mit Oracle 10g kompatibel und später.

DG4ODBC interagiert mit Heterogeneous Services (einer Oracle-Datenbankkomponente), um Oracle-Clientanwendungen den Zugriff auf Nicht-Oracle-Datenbanken zu ermöglichen. Die Nicht-Oracle-Daten werden transparent integriert, sodass Oracle-Clientanwendungen nicht wissen, dass die Daten in einer entfernten Datenbank eines anderen Anbieters gespeichert sind

Die folgende Anleitung zeigt Ihnen, wie Sie Oracle unter Windows mit SQL Server verbinden. Weitere Informationen zu DG4ODBC finden Sie in unseren Tutorials zu DG4ODBC für Windows.

  1. Laden Sie den SQL Server ODBC-Treiber für Ihre Windows-Plattform herunter. (Anmeldung erforderlich.)
  2. Installieren und lizenzieren Sie den SQL Server ODBC-Treiber auf dem Windows-Rechner, auf dem DG4ODBC installiert ist.

    Installationsanweisungen finden Sie in der Dokumentation zum SQL Server-ODBC-Treiber.

  3. Konfigurieren Sie im ODBC-Datenquellen-Administrator auf Ihrem DG4ODBC-Rechner einen System-DSN, der eine Verbindung zu Ihrer SQL Server-Instanz herstellt.

    Anweisungen zum Konfigurieren von Datenquellen finden Sie in der Dokumentation zum SQL Server-ODBC-Treiber.

    64-Bit-Windows Sie müssen überprüfen, ob Ihre Version von DG4ODBC 32-Bit oder 64-Bit ist. Starten Sie dazu den Windows Task-Manager und wählen Sie die Registerkarte Prozesse. Geben Sie in einem Eingabeaufforderungsfenster dg4odbc --help ein. Suchen Sie im Windows Task-Manager nach dem DG4ODBC-Prozess. Wenn der Image-Name "dg4odbc.exe *32" lautet, ist DG4ODBC 32-Bit. Wenn der Image-Name "dg4odbc.exe" lautet, ist DG4ODBC 64-Bit. Drücken Sie STRG+C im Eingabeaufforderungsfenster, wenn Sie den Windows Task-Manager verwendet haben, um die Architektur von DG4ODBC herauszufinden.

    Wenn Sie die 64-Bit-Version von DG4ODBC haben, müssen Sie die 64-Bit-Version von ODBC Administrator ausführen. Öffnen Sie dazu Verwaltung in der Systemsteuerung und dann Datenquellen (ODBC). (Unter Windows Server 2003 und früher trägt das Applet der Systemsteuerung, das den ODBC-Administrator startet, die Bezeichnung Datenquellen. Unter Windows 8 und höher trägt das Applet der Systemsteuerung die Bezeichnung ODBC-Datenquellen (64-Bit).)

    Wenn Sie die 32-Bit-Version von DG4ODBC haben, müssen Sie die 32-Bit-Version von ODBC Administrator ausführen. Geben Sie dazu im Windows-Dialogfeld „Ausführen“ Folgendes ein:

    %windir%\syswow64\odbcad32.exe
  4. Erstellen Sie eine DG4ODBC-Init-Datei. Wechseln Sie dazu in das Verzeichnis %ORACLE_HOME%\hs\admin. Erstellen Sie eine Kopie der Datei initdg4odbc.ora. Benennen Sie die neue Datei initmssql.ora .

    Hinweis Ersetzen Sie in diesen Anweisungen %ORACLE_HOME% durch den Speicherort Ihres Oracle-HOME-Verzeichnisses. Beispiel:C:\oraclexe\app\oracle\product\11.2.0\server.

  5. Stellen Sie sicher, dass diese Parameter und Werte in Ihrer Init-Datei vorhanden sind:
    HS_FDS_CONNECT_INFO = my_sqlserver_odbc_dsn;
  6. Fügen Sie einen Eintrag zu %ORACLE_HOME%\network\admin\listener.ora hinzu, der einen SID_NAME für DG4ODBC erstellt. Zum Beispiel:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
  7. Fügen Sie einen DG4ODBC-Eintrag zu %ORACLE_HOME%\network\admin\tnsnames.ora hinzu, der den im vorherigen Schritt erstellten SID_NAME angibt. Beispiel:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )

    Ersetzen Sie oracle_host durch den Hostnamen Ihres Oracle-Rechners.

  8. Starten (oder starten) Sie den Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
  9. Verbinden Sie sich mit Ihrer Oracle-Datenbank in SQL*Plus.
  10. Erstellen Sie in SQL*Plus eine Datenbankverknüpfung für die SQL Server-Zielinstanz. Zum Beispiel:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_sqlserver_password" USING 'mssql';

    Ersetzen Sie my_sqlserver_user und my_sqlserver_password mit einem gültigen Benutzernamen und Kennwort für die SQL Server-Zielinstanz.

Notizen

  • Wenn Sie Probleme haben, sich von Oracle aus mit SQL Server zu verbinden, aktivieren Sie die DG4ODBC-Ablaufverfolgung und überprüfen Sie die Ablaufverfolgungsdateien, die in das Verzeichnis %ORACLE_HOME%\hs\trace geschrieben werden. Um das DG4ODBC-Tracing zu aktivieren, fügen Sie die Zeile HS_FDS_TRACE_LEVEL =DEBUG zu initmssql.ora hinzu und starten / starten Sie dann den Oracle-Listener neu. Wenn das Trace-Verzeichnis nicht existiert, erstellen Sie es.
  • Wenn Sie die ODBC-Treiber-Manager-Ablaufverfolgung aktivieren, aber keine Ablaufverfolgungsdatei oder eine leere Ablaufverfolgungsdatei erhalten, ändern Sie den Speicherort der Ablaufverfolgungsdatei in das TEMP-Verzeichnis von Windows. Beispiel:C:\Windows\Temp\SQL.log.

Probleme beim Zugriff auf Ihre Daten

Wenn Sie beim Lesen/Schreiben von Daten in SQL Server von Oracle auf Probleme stoßen, gehen Sie bitte wie folgt vor:

  • Vergewissern Sie sich, dass das Problem nicht bei der von Ihnen verwendeten Anwendung liegt, z. B. SQL Developer, Toad usw. Testen Sie das Problem mit SQLPlus auf dem Oracle-Computer. Wenn das Problem beispielsweise nur unter Toad und nicht in SQLPlus auftritt, melden Sie das Problem bitte den Leuten, die Toad unterstützen.
  • Versuchen Sie, das Problem auf die problematische Spalte/Tabelle zu beschränken. Nehmen wir zum Beispiel an, Sie führen ein select * from table@link aus und Sie haben nur 1 Spalte, die das Problem verursacht, versuchen Sie, select column from table@link auszuführen und sehen, ob das den gleichen Fehler gibt. Dies hilft uns, das Problem zu diagnostizieren.
  • Wenn Sie sich wegen eines DG4ODBC-Problems an den Easysoft-Support wenden müssen:
    1. Aktivieren Sie die Dg4ODBC-Ablaufverfolgung in Ihrer Datei $ORACLE_HOME/hs/admin/initmssql.ora:
      HS_FDS_TRACE_LEVEL = Debug
    2. Stoppen und starten Sie Ihren Oracle-Listener.
    3. Reproduzieren Sie das Problem in SQL Plus. Wenn Sie keine Oracle-Trace-Datei in Ihrem Ordner $ORACLE_HOME/hs/log erhalten, wurde Ihr Listener nicht neu gestartet oder Oracle wurde nicht richtig konfiguriert.
    4. Senden Sie das Easysoft Support-Team ([email protected]):
      • Ausgabe, die die Anmeldung bei SQLPlus, die ausgeführte Abfrage und den angezeigten Fehler zeigt.
      • Eine Kopie Ihrer Oracle initmssql-Protokolldatei. Bitte zippen / komprimieren Sie diese Datei, wenn sie größer als 1 MB ist.
      • Eine Kopie Ihrer initmssql.ora-Datei.
      • Eine Kopie der Dateien, die auf _install.info enden, von /usr/local/easysoft.
      • Sobald wir alle Artikel haben, sollte das Easysoft-Supportteam in der Lage sein, schnell herauszufinden, ob es sich um ein Oracle-Konfigurationsproblem / einen Fehler in Oracle, eine Easysoft-Konfiguration / einen Fehler handelt oder ob wir einfach weitere Informationen benötigen.