Oracle
 sql >> Database >  >> RDS >> Oracle

Connessione di Oracle a SQL Server da Windows

Connetti le applicazioni Oracle su Windows a SQL Server.

È possibile utilizzare Oracle Database Gateway for ODBC (DG4ODBC) e il driver ODBC di SQL Server per connettere Oracle a SQL Server.

DG4ODBC fa parte di Oracle 11g e versioni successive, senza costi aggiuntivi, ed è compatibile con Oracle 10g e successivi.

DG4ODBC interagisce con Heterogeneous Services (un componente di database Oracle) per consentire alle applicazioni client Oracle di accedere a database non Oracle. I dati non Oracle sono integrati in modo trasparente, quindi le applicazioni client Oracle non sono consapevoli del fatto che i dati sono archiviati in un database remoto di un altro fornitore

Le istruzioni seguenti mostrano come connettere Oracle su Windows a SQL Server. Per ulteriori informazioni su DG4ODBC, fare riferimento ai nostri tutorial DG4ODBC per Windows.

  1. Scarica il driver ODBC di SQL Server per la tua piattaforma Windows. (Registrazione richiesta.)
  2. Installare e concedere in licenza il driver ODBC di SQL Server sul computer Windows in cui è installato DG4ODBC.

    Per le istruzioni di installazione, vedere la documentazione del driver ODBC di SQL Server.

  3. In ODBC Data Source Administrator sul tuo computer DG4ODBC, configura un DSN di sistema che si connette all'istanza di SQL Server.

    Per istruzioni sulla configurazione delle origini dati, vedere la documentazione del driver ODBC di SQL Server.

    Finestre a 64 bit È necessario verificare se la versione di DG4ODBC è a 32 o 64 bit. Per fare ciò, avvia il Task Manager di Windows e scegli la scheda Processi. In una finestra del prompt dei comandi, digitare dg4odbc --help. Nel Task Manager di Windows, cerca il processo DG4ODBC. Se il nome dell'immagine è "dg4odbc.exe *32", DG4ODBC è a 32 bit. Se il nome dell'immagine è "dg4odbc.exe", DG4ODBC è a 64 bit. Premi CTRL+C nella finestra del prompt dei comandi, dopo aver utilizzato il Task Manager di Windows per scoprire l'architettura di DG4ODBC.

    Se si dispone della versione a 64 bit di DG4ODBC, è necessario eseguire la versione a 64 bit di ODBC Administrator. A tale scopo, aprire Strumenti di amministrazione nel Pannello di controllo e quindi aprire Origini dati (ODBC). (Su Windows Server 2003 e versioni precedenti, l'applet del Pannello di controllo che avvia ODBC Administrator è denominata Origini dati. In Windows 8 e versioni successive, l'applet del Pannello di controllo è denominata Origini dati ODBC (64 bit).)

    Se si dispone della versione a 32 bit di DG4ODBC, è necessario eseguire la versione a 32 bit di ODBC Administrator. Per fare ciò, nella finestra di dialogo Esegui di Windows, digita:

    %windir%\syswow64\odbcad32.exe
  4. Crea un file di inizializzazione DG4ODBC. Per fare ciò, passa alla directory %ORACLE_HOME%\hs\admin. Crea una copia del file initdg4odbc.ora. Assegna un nome al nuovo file initmssql.ora .

    Nota In queste istruzioni, sostituisci %ORACLE_HOME% con il percorso della tua directory Oracle HOME. Ad esempio, C:\oraclexe\app\oracle\product\11.2.0\server.

  5. Assicurati che questi parametri e valori siano presenti nel tuo file init:
    HS_FDS_CONNECT_INFO = my_sqlserver_odbc_dsn;
  6. Aggiungi una voce a %ORACLE_HOME%\network\admin\listener.ora che crea un SID_NAME per DG4ODBC. Ad esempio:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
  7. Aggiungi una voce DG4ODBC a %ORACLE_HOME%\network\admin\tnsnames.ora che specifica il SID_NAME creato nel passaggio precedente. Ad esempio:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )

    Sostituisci oracle_host con il nome host della tua macchina Oracle.

  8. Avvia (o riavvia) Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
  9. Connettiti al tuo database Oracle in SQL*Plus.
  10. In SQL*Plus, creare un collegamento al database per l'istanza di destinazione di SQL Server. Ad esempio:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_sqlserver_password" USING 'mssql';

    Sostituisci my_sqlserver_user e my_sqlserver_password con un nome utente e una password validi per l'istanza di SQL Server di destinazione.

Note

  • Se si verificano problemi di connessione a SQL Server da Oracle, abilitare la traccia DG4ODBC e controllare i file di traccia scritti nella directory %ORACLE_HOME%\hs\trace. Per abilitare la traccia DG4ODBC, aggiungi la riga HS_FDS_TRACE_LEVEL =DEBUG a initmssql.ora e quindi avvia/riavvia il listener Oracle. Se la directory trace non esiste, creala.
  • Se si abilita la traccia di ODBC Driver Manager, ma non si ottiene un file di traccia o un file di traccia vuoto, modificare il percorso del file di traccia nella directory TEMP di Windows. Ad esempio, C:\Windows\Temp\SQL.log.

Problemi di accesso ai tuoi dati

In caso di problemi durante la lettura/scrittura di dati in SQL Server da Oracle, eseguire le operazioni seguenti:

  • Assicurati che il problema non riguardi l'applicazione che stai utilizzando, ad esempio SQL Developer, Toad e così via. Testare il problema utilizzando SQLPlus sulla macchina Oracle. Se il problema si verifica, ad esempio, solo in Toad e non in SQLPlus, segnala il problema alle persone che supportano Toad.
  • Cerca di limitare il problema alla colonna/tabella del problema. Diciamo, ad esempio, che stai eseguendo un select * from table@link e hai solo 1 colonna che causa il problema, prova a eseguire select column from table@link e vedi se questo dà lo stesso errore. Questo ci aiuta a diagnosticare il problema.
  • Se è necessario contattare l'assistenza Easysoft con un problema DG4ODBC:
    1. Attiva la traccia Dg4ODBC all'interno del tuo file $ORACLE_HOME/hs/admin/initmssql.ora:
      HS_FDS_TRACE_LEVEL = Debug
    2. Interrompi e avvia il tuo listener Oracle.
    3. Riproduci il problema in SQL Plus. Se non ottieni un file di traccia Oracle nella tua cartella $ORACLE_HOME/hs/log, il tuo listener non è stato riavviato o Oracle non è stato configurato correttamente.
    4. Inviare il team di supporto Easysoft ([email protected]):
      • Output che mostra l'accesso a SQLPlus, la query in esecuzione e l'errore visualizzato.
      • Una copia del file di registro initmssql di Oracle. Si prega di zippare/comprimere questo file se supera 1 MB.
      • Una copia del tuo file initmssql.ora.
      • Una copia dei file che terminano con _install.info da /usr/local/easysoft.
      • Una volta che abbiamo tutti gli elementi, il team di supporto di Easysoft dovrebbe essere in grado di capire rapidamente se si tratta di un problema/bug di configurazione Oracle in Oracle, di configurazione/bug di Easysoft o se abbiamo semplicemente bisogno di ulteriori informazioni.