sql >> Base de Datos >  >> RDS >> Oracle

Conexión de Oracle a SQL Server desde Windows

Conecte aplicaciones de Oracle en Windows a SQL Server.

Puede utilizar la puerta de enlace de base de datos de Oracle para ODBC (DG4ODBC) y el controlador ODBC de SQL Server para conectar Oracle a SQL Server.

DG4ODBC viene como parte de Oracle 11g y posteriores, sin costo adicional, y es compatible con Oracle 10g y posteriores.

DG4ODBC interactúa con los servicios heterogéneos (un componente de la base de datos de Oracle) para permitir que las aplicaciones cliente de Oracle accedan a bases de datos que no son de Oracle. Los datos que no son de Oracle se integran de forma transparente, por lo que las aplicaciones cliente de Oracle no saben que los datos están almacenados en una base de datos remota de otro proveedor

Las siguientes instrucciones le muestran cómo conectar Oracle en Windows a SQL Server. Para obtener más información sobre DG4ODBC, consulte nuestros tutoriales de DG4ODBC para Windows.

  1. Descargue el controlador ODBC de SQL Server para su plataforma Windows. (Es necesario registrarse).
  2. Instale y obtenga la licencia del controlador ODBC de SQL Server en la máquina con Windows donde está instalado DG4ODBC.

    Para obtener instrucciones de instalación, consulte la documentación del controlador ODBC de SQL Server.

  3. En el Administrador de fuente de datos ODBC en su máquina DG4ODBC, configure un DSN del sistema que se conecte a su instancia de SQL Server.

    Para obtener instrucciones sobre cómo configurar orígenes de datos, consulte la documentación del controlador ODBC de SQL Server.

    Windows de 64 bits Debe verificar si su versión de DG4ODBC es de 32 bits o de 64 bits. Para hacer esto, inicie el Administrador de tareas de Windows y elija la pestaña Procesos. En una ventana del símbolo del sistema, escriba dg4odbc --help. En el Administrador de tareas de Windows, busque el proceso DG4ODBC. Si el nombre de la imagen es "dg4odbc.exe *32", DG4ODBC es de 32 bits. Si el nombre de la imagen es "dg4odbc.exe", DG4ODBC es de 64 bits. Presione CTRL+C en la ventana del símbolo del sistema, cuando haya utilizado el Administrador de tareas de Windows para averiguar la arquitectura de DG4ODBC.

    Si tiene la versión de 64 bits de DG4ODBC, debe ejecutar la versión de 64 bits de ODBC Administrator. Para hacer esto, abra Herramientas administrativas en el Panel de control y luego abra Orígenes de datos (ODBC). (En Windows Server 2003 y versiones anteriores, el subprograma del Panel de control que inicia el Administrador ODBC tiene la etiqueta Fuentes de datos. En Windows 8 y versiones posteriores, el subprograma del Panel de control tiene la etiqueta Fuentes de datos ODBC (64 bits).)

    Si tiene la versión de 32 bits de DG4ODBC, debe ejecutar la versión de 32 bits de ODBC Administrator. Para ello, en el cuadro de diálogo Ejecutar de Windows, escriba:

    %windir%\syswow64\odbcad32.exe
  4. Cree un archivo de inicio DG4ODBC. Para ello, cambie al directorio %ORACLE_HOME%\hs\admin. Cree una copia del archivo initdg4odbc.ora. Nombre el nuevo archivo initmssql.ora .

    Nota En estas instrucciones, reemplace %ORACLE_HOME% con la ubicación de su directorio Oracle HOME. Por ejemplo, C:\oraclex\app\oracle\product\11.2.0\server.

  5. Asegúrese de que estos parámetros y valores estén presentes en su archivo de inicio:
    HS_FDS_CONNECT_INFO = my_sqlserver_odbc_dsn;
  6. Agregue una entrada a %ORACLE_HOME%\network\admin\listener.ora que crea un SID_NAME para DG4ODBC. Por ejemplo:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
  7. Agregue una entrada DG4ODBC a %ORACLE_HOME%\network\admin\tnsnames.ora que especifique el SID_NAME creado en el paso anterior. Por ejemplo:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )

    Reemplazar oracle_host con el nombre de host de su máquina Oracle.

  8. Inicie (o reinicie) Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
  9. Conéctese a su base de datos Oracle en SQL*Plus.
  10. En SQL*Plus, cree un enlace de base de datos para la instancia de destino de SQL Server. Por ejemplo:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_sqlserver_password" USING 'mssql';

    Reemplace my_sqlserver_user y mi_contraseña_servidor_sql con un nombre de usuario y una contraseña válidos para la instancia de destino de SQL Server.

Notas

  • Si tiene problemas para conectarse a SQL Server desde Oracle, habilite el rastreo DG4ODBC y verifique los archivos de rastreo escritos en el directorio %ORACLE_HOME%\hs\trace. Para habilitar el seguimiento de DG4ODBC, agregue la línea HS_FDS_TRACE_LEVEL =DEBUG a initmssql.ora y luego inicie o reinicie Oracle listener. Si el directorio de seguimiento no existe, créelo.
  • Si habilita el seguimiento del Administrador de controladores ODBC, pero no obtiene un archivo de seguimiento o obtiene un archivo de seguimiento vacío, cambie la ubicación del archivo de seguimiento al directorio TEMP de Windows. Por ejemplo, C:\Windows\Temp\SQL.log.

Problemas para acceder a sus datos

Si tiene algún problema al intentar leer/escribir datos en SQL Server desde Oracle, haga lo siguiente:

  • Asegúrese de que el problema no esté relacionado con la aplicación que está utilizando, por ejemplo, SQL Developer, Toad, etc. Pruebe el problema con SQLPlus en la máquina de Oracle. Si el problema solo ocurre, por ejemplo, en Toad y no en SQLPlus, informe el problema a las personas que brindan soporte a Toad.
  • Intente limitar el problema a la columna/tabla del problema. Digamos, por ejemplo, que está ejecutando select * from table@link y solo tiene 1 columna que está causando el problema, intente ejecutar select column from table@link y ver si eso da el mismo error. Esto nos ayuda a diagnosticar el problema.
  • Si necesita ponerse en contacto con el soporte de Easysoft con un problema DG4ODBC:
    1. Active el rastreo Dg4ODBC dentro de su archivo $ORACLE_HOME/hs/admin/initmssql.ora:
      HS_FDS_TRACE_LEVEL = Debug
    2. Detenga e inicie su oyente de Oracle.
    3. Reproduzca el problema en SQL Plus. Si no obtiene un archivo de seguimiento de Oracle en su carpeta $ORACLE_HOME/hs/log, su escucha no se ha reiniciado o Oracle no se ha configurado correctamente.
    4. Envíe al equipo de soporte de Easysoft ([email protected]):
      • Resultado que muestra el inicio de sesión en SQLPlus, la consulta que se ejecuta y el error que se muestra.
      • Una copia de su archivo de registro Oracle initmssql. Comprima/comprima este archivo si tiene más de 1 MB.
      • Una copia de su archivo initmssql.ora.
      • Una copia de los archivos que terminan en _install.info de /usr/local/easysoft.
      • Una vez que tengamos todos los elementos, el equipo de soporte de Easysoft debería poder determinar rápidamente si se trata de un problema/error de configuración de Oracle en Oracle, configuración/error de Easysoft o si simplemente necesitamos más información.