sql >> Database >  >> RDS >> Oracle

Oracle verbinden met SQL Server vanuit Windows

Verbind Oracle-applicaties op Windows met SQL Server.

U kunt Oracle's Database Gateway for ODBC (DG4ODBC) en de SQL Server ODBC Driver gebruiken om Oracle te verbinden met SQL Server.

DG4ODBC komt als onderdeel van Oracle 11g en later, zonder extra kosten, en is compatibel met Oracle 10g en later.

DG4ODBC werkt samen met Heterogene Services (een Oracle-databasecomponent) om Oracle-clienttoepassingen toegang te geven tot niet-Oracle-databases. De niet-Oracle-gegevens zijn transparant geïntegreerd, en dus weten Oracle-clienttoepassingen niet dat de gegevens zijn opgeslagen in een externe database van een andere leverancier

De volgende instructies laten zien hoe u Oracle op Windows verbindt met SQL Server. Raadpleeg onze DG4ODBC voor Windows-tutorials voor meer informatie over DG4ODBC.

  1. Download het SQL Server ODBC-stuurprogramma voor uw Windows-platform. (Registratie vereist.)
  2. Installeer en licentieer het SQL Server ODBC-stuurprogramma op de Windows-computer waarop DG4ODBC is geïnstalleerd.

    Zie de documentatie van het SQL Server ODBC-stuurprogramma voor installatie-instructies.

  3. Configureer in ODBC Data Source Administrator op uw DG4ODBC-machine een systeem-DSN die verbinding maakt met uw SQL Server-instantie.

    Raadpleeg de documentatie van het SQL Server ODBC-stuurprogramma voor instructies over het configureren van gegevensbronnen.

    64-bits Windows U moet controleren of uw versie van DG4ODBC 32-bits of 64-bits is. Start hiervoor Windows Taakbeheer en kies het tabblad Processen. Typ in een opdrachtpromptvenster dg4odbc --help. Zoek in Windows Taakbeheer naar het DG4ODBC-proces. Als de afbeeldingsnaam "dg4odbc.exe *32" is, is DG4ODBC 32-bits. Als de afbeeldingsnaam "dg4odbc.exe" is, is DG4ODBC 64-bits. Druk op CTRL+C in het opdrachtpromptvenster als u Windows Taakbeheer hebt gebruikt om de architectuur van DG4ODBC te achterhalen.

    Als u de 64-bits versie van DG4ODBC hebt, moet u de 64-bits versie van ODBC Administrator gebruiken. Open hiervoor Systeembeheer in het Configuratiescherm en open vervolgens Gegevensbronnen (ODBC). (Op Windows Server 2003 en eerder is de applet van het Configuratiescherm die ODBC Administrator start, gelabeld met Data Sources. In Windows 8 en later is de applet van het Configuratiescherm gelabeld met ODBC Data Sources (64-bit).)

    Als u de 32-bits versie van DG4ODBC hebt, moet u de 32-bits versie van ODBC Administrator gebruiken. Typ hiervoor in het dialoogvenster Uitvoeren van Windows:

    %windir%\syswow64\odbcad32.exe
  4. Maak een DG4ODBC init-bestand. Ga hiervoor naar de map %ORACLE_HOME%\hs\admin. Maak een kopie van het bestand initdg4odbc.ora. Geef het nieuwe bestand de naam initmssql.ora .

    Opmerking Vervang in deze instructies %ORACLE_HOME% door de locatie van uw Oracle HOME-directory. Bijvoorbeeld C:\oraclex\app\oracle\product\11.2.0\server.

  5. Zorg ervoor dat deze parameters en waarden aanwezig zijn in uw init-bestand:
    HS_FDS_CONNECT_INFO = my_sqlserver_odbc_dsn;
  6. Voeg een item toe aan %ORACLE_HOME%\network\admin\listener.ora dat een SID_NAME voor DG4ODBC aanmaakt. Bijvoorbeeld:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
  7. Voeg een DG4ODBC-item toe aan %ORACLE_HOME%\network\admin\tnsnames.ora dat de SID_NAME specificeert die in de vorige stap is gemaakt. Bijvoorbeeld:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )

    Vervang oracle_host met de hostnaam van uw Oracle-machine.

  8. Start (of herstart) de Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
  9. Maak verbinding met uw Oracle-database in SQL*Plus.
  10. Maak in SQL*Plus een databasekoppeling voor de doelinstantie van SQL Server. Bijvoorbeeld:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_sqlserver_password" USING 'mssql';

    Vervang my_sqlserver_user en my_sqlserver_password met een geldige gebruikersnaam en wachtwoord voor de doel-SQL Server-instantie.

Opmerkingen

  • Als je problemen hebt om verbinding te maken met SQL Server vanuit Oracle, schakel dan DG4ODBC-tracering in en controleer de traceerbestanden die naar de map %ORACLE_HOME%\hs\trace zijn geschreven. Om DG4ODBC-tracering in te schakelen, voegt u de regel HS_FDS_TRACE_LEVEL =DEBUG toe aan initmssql.ora en start / herstart u de Oracle-listener. Als de traceermap niet bestaat, maak deze dan aan.
  • Als u ODBC Driver Manager-tracering inschakelt, maar geen traceerbestand krijgt of een leeg traceringsbestand krijgt, wijzigt u de locatie van het traceerbestand in de Windows TEMP-directory. Bijvoorbeeld C:\Windows\Temp\SQL.log.

Problemen met toegang tot uw gegevens

Als u problemen ondervindt bij het lezen/schrijven van gegevens naar SQL Server vanuit Oracle, doe dan het volgende:

  • Zorg ervoor dat het probleem niet ligt bij de toepassing die u gebruikt, bijvoorbeeld SQL Developer, Toad enzovoort. Test het probleem met SQLPlus op de Oracle-machine. Als het probleem zich bijvoorbeeld alleen voordoet onder Toad en niet in SQLPlus, meld het probleem dan aan de mensen die Toad ondersteunen.
  • Probeer het probleem te beperken tot de probleemkolom / tabel. Laten we bijvoorbeeld zeggen dat u een select * from table@link . gebruikt en je hebt maar 1 kolom die het probleem veroorzaakt, probeer dan select column from table@link en kijk of dat dezelfde fout geeft. Dit helpt ons om het probleem te diagnosticeren.
  • Als u contact moet opnemen met Easysoft Support met een DG4ODBC-probleem:
    1. Schakel Dg4ODBC-tracering in in uw $ORACLE_HOME/hs/admin/initmssql.ora-bestand:
      HS_FDS_TRACE_LEVEL = Debug
    2. Stop en start uw Oracle-luisteraar.
    3. Reproduceer het probleem in SQL Plus. Als u geen Oracle-traceerbestand in uw $ORACLE_HOME/hs/log-map krijgt, is uw listener niet opnieuw gestart of is Oracle niet correct geconfigureerd.
    4. Stuur het Easysoft-ondersteuningsteam ([email protected]):
      • Uitvoer met de login voor SQLPlus, de query die wordt uitgevoerd en de weergegeven fout.
      • Een kopie van uw Oracle initmssql-logbestand. Zip / comprimeer dit bestand als het meer dan 1 MB is.
      • Een kopie van je initmssql.ora-bestand.
      • Een kopie van de bestanden die eindigen op _install.info van /usr/local/easysoft.
      • Zodra we alle items hebben, zou het Easysoft-ondersteuningsteam snel moeten kunnen bepalen of dit een Oracle-configuratieprobleem/bug in Oracle, Easysoft-configuratie/bug is of dat we gewoon meer informatie nodig hebben.

  1. Hoe WordPress-beheerderswachtwoord opnieuw in te stellen via de MySQL-opdrachtprompt

  2. Alfanumeriek sorteren met PostgreSQL

  3. Hoe een Drop Table Statement te genereren voor alle tabellen in een database - SQL Server / T-SQL Tutorial Part 48

  4. De opdracht Compact en herstel gebruiken in Access