Oracle
 sql >> Base de données >  >> RDS >> Oracle

Connexion d'Oracle à SQL Server à partir de Windows

Connectez les applications Oracle sous Windows à SQL Server.

Vous pouvez utiliser la passerelle de base de données Oracle pour ODBC (DG4ODBC) et le pilote ODBC SQL Server pour connecter Oracle à SQL Server.

DG4ODBC fait partie d'Oracle 11g et versions ultérieures, sans frais supplémentaires, et est compatible avec Oracle 10g et plus tard.

DG4ODBC interagit avec Heterogeneous Services (un composant de base de données Oracle) pour permettre aux applications clientes Oracle d'accéder à des bases de données non Oracle. Les données non-Oracle sont intégrées de manière transparente, et les applications client Oracle ne savent donc pas que les données sont stockées dans une base de données distante d'un autre fournisseur

Les instructions suivantes vous montrent comment connecter Oracle sous Windows à SQL Server. Pour plus d'informations sur DG4ODBC, consultez nos tutoriels DG4ODBC pour Windows.

  1. Téléchargez le pilote ODBC SQL Server pour votre plate-forme Windows. (Inscription requise.)
  2. Installez et autorisez le pilote ODBC SQL Server sur la machine Windows sur laquelle DG4ODBC est installé.

    Pour obtenir des instructions d'installation, consultez la documentation du pilote ODBC SQL Server.

  3. Dans ODBC Data Source Administrator sur votre machine DG4ODBC, configurez un DSN système qui se connecte à votre instance SQL Server.

    Pour obtenir des instructions sur la configuration des sources de données, consultez la documentation du pilote ODBC SQL Server.

    Windows 64 bits Vous devez vérifier si votre version de DG4ODBC est 32 bits ou 64 bits. Pour ce faire, démarrez le Gestionnaire des tâches de Windows et choisissez l'onglet Processus. Dans une fenêtre d'invite de commande, tapez dg4odbc --help. Dans le Gestionnaire des tâches de Windows, recherchez le processus DG4ODBC. Si le nom de l'image est "dg4odbc.exe *32", DG4ODBC est 32 bits. Si le nom de l'image est "dg4odbc.exe", DG4ODBC est 64 bits. Appuyez sur CTRL + C dans la fenêtre d'invite de commande, lorsque vous avez utilisé le gestionnaire de tâches de Windows pour découvrir l'architecture de DG4ODBC.

    Si vous disposez de la version 64 bits de DG4ODBC, vous devez exécuter la version 64 bits de l'administrateur ODBC. Pour ce faire, ouvrez Outils d'administration dans le Panneau de configuration, puis ouvrez Sources de données (ODBC). (Sur Windows Server 2003 et versions antérieures, l'applet du Panneau de configuration qui lance l'administrateur ODBC est intitulé Sources de données. Sous Windows 8 et versions ultérieures, l'applet du Panneau de configuration est intitulé Sources de données ODBC (64 bits).)

    Si vous disposez de la version 32 bits de DG4ODBC, vous devez exécuter la version 32 bits de l'administrateur ODBC. Pour ce faire, dans la boîte de dialogue Exécuter de Windows, tapez :

    %windir%\syswow64\odbcad32.exe
  4. Créez un fichier d'initialisation DG4ODBC. Pour ce faire, accédez au répertoire %ORACLE_HOME%\hs\admin. Créez une copie du fichier initdg4odbc.ora. Nommez le nouveau fichier initmssql.ora .

    Remarque Dans ces instructions, remplacez %ORACLE_HOME% par l'emplacement de votre répertoire Oracle HOME. Par exemple, C:\oraclex\app\oracle\product\11.2.0\server.

  5. Assurez-vous que ces paramètres et valeurs sont présents dans votre fichier init :
    HS_FDS_CONNECT_INFO = my_sqlserver_odbc_dsn;
  6. Ajoutez une entrée à %ORACLE_HOME%\network\admin\listener.ora qui crée un SID_NAME pour DG4ODBC. Par exemple :
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
  7. Ajoutez une entrée DG4ODBC à %ORACLE_HOME%\network\admin\tnsnames.ora qui spécifie le SID_NAME créé à l'étape précédente. Par exemple :
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )

    Remplacez oracle_host avec le nom d'hôte de votre machine Oracle.

  8. Démarrez (ou redémarrez) l'écouteur Oracle :
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
  9. Connectez-vous à votre base de données Oracle dans SQL*Plus.
  10. Dans SQL*Plus, créez un lien de base de données pour l'instance SQL Server cible. Par exemple :
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_sqlserver_password" USING 'mssql';

    Remplacez my_sqlserver_user et my_sqlserver_password avec un nom d'utilisateur et un mot de passe valides pour l'instance SQL Server cible.

Remarques

  • Si vous rencontrez des problèmes pour vous connecter à SQL Server à partir d'Oracle, activez le suivi DG4ODBC et vérifiez les fichiers de suivi écrits dans le répertoire %ORACLE_HOME%\hs\trace. Pour activer le traçage DG4ODBC, ajoutez la ligne HS_FDS_TRACE_LEVEL =DEBUG à initmssql.ora puis démarrez/redémarrez l'écouteur Oracle. Si le répertoire de trace n'existe pas, créez-le.
  • Si vous activez le suivi du gestionnaire de pilotes ODBC, mais que vous n'obtenez pas de fichier de suivi ou que vous obtenez un fichier de suivi vide, remplacez l'emplacement du fichier de suivi par le répertoire Windows TEMP. Par exemple, C:\Windows\Temp\SQL.log.

Problèmes d'accès à vos données

Si vous rencontrez des problèmes en essayant de lire/écrire des données sur SQL Server à partir d'Oracle, veuillez procéder comme suit :

  • Assurez-vous que le problème ne vient pas de l'application que vous utilisez, par exemple SQL Developer, Toad, etc. Testez le problème à l'aide de SQLPlus sur la machine Oracle. Si le problème ne se produit par exemple que sous Toad et non dans SQLPlus, veuillez signaler le problème aux personnes qui prennent en charge Toad.
  • Essayez de limiter le problème à la colonne/table du problème. Disons, par exemple, que vous exécutez un select * from table@link et que vous n'avez qu'une seule colonne à l'origine du problème, essayez d'exécuter select column from table@link et voir si cela donne la même erreur. Cela nous aide à diagnostiquer le problème.
  • Si vous avez besoin de contacter le support Easysoft avec un problème DG4ODBC :
    1. Activez le traçage Dg4ODBC dans votre fichier $ORACLE_HOME/hs/admin/initmssql.ora :
      HS_FDS_TRACE_LEVEL = Debug
    2. Arrêtez et démarrez votre écouteur Oracle.
    3. Reproduisez le problème dans SQL Plus. Si vous n'obtenez pas de fichier de trace Oracle dans votre dossier $ORACLE_HOME/hs/log, votre écouteur n'a pas été redémarré ou Oracle n'a pas été configuré correctement.
    4. Envoyer l'équipe d'assistance d'Easysoft ([email protected]) :
      • Sortie montrant la connexion à SQLPlus, la requête en cours d'exécution et l'erreur affichée.
      • Une copie de votre fichier journal Oracle initmssql. Veuillez compresser/compresser ce fichier s'il dépasse 1 Mo.
      • Une copie de votre fichier initmssql.ora.
      • Une copie des fichiers se terminant par _install.info depuis /usr/local/easysoft.
      • Une fois que nous avons tous les éléments, l'équipe de support Easysoft devrait être en mesure de déterminer rapidement s'il s'agit d'un problème/bogue de configuration Oracle dans Oracle, d'une configuration/bogue Easysoft ou si nous avons simplement besoin de plus d'informations.