Conectar Oracle a SQL-Server
Esta nota aplica en Solaris Sparc 10, Oralce 11 y 10g.
En algunas ocasiones es necesario obtener datos de terceros desde Oracle, llámese Sybase, SQL-Server, etc. Oracle permite conectarse con otras bases de datos siempre y cuando sea de terceros hacia Oracle, pero restringe la comunicación cuando se trata de Oracle hacia terceros, sin embargo existe una herramienta llamada Oracle Database Gateway que nos permite realizar este tipo de conexiones. Para la instalación de la herramienta necesitamos lo siguiente:
Descargar el kit de Oracle Database Gateway:
Solaris 10 (update 6 or later)
Como configurar DG4MSQL (Oracle Database Gateway for MS SQL Server) 64bit Unix OS (Linux, Solaris, AIX,HP-UX) post install ( Doc ID 562509.1 )
Patch 13390677: 11.2.0.4.0 PATCH SET FOR ORACLE DATABASE SERVER
- logearse en My Oracle Support
- Ir a la sección Patches & Updates
- Buscar el patch number 13390677 y tu plataforma
- Presiona el boton '+' para ver la lista de plataformas
- click en el patch number
- Para descargar el kit debes elegir cualquiera de los siguientes casos que apliquen:
p13390677_112040_platform_5of7.zip - Todos los SO excepto WIndows 32-bit
p13390677_112040_platform_4of6.zip - Windows 32-bit
Como configurar DG4MSQL (Oracle Database Gateway for MS SQL Server) 64bit Unix OS (Linux, Solaris, AIX,HP-UX) post install ( Doc ID 562509.1 )
Patch 13390677: 11.2.0.4.0 PATCH SET FOR ORACLE DATABASE SERVER
- logearse en My Oracle Support
- Ir a la sección Patches & Updates
- Buscar el patch number 13390677 y tu plataforma
- Presiona el boton '+' para ver la lista de plataformas
- click en el patch number
- Para descargar el kit debes elegir cualquiera de los siguientes casos que apliquen:
p13390677_112040_platform_5of7.zip - Todos los SO excepto WIndows 32-bit
p13390677_112040_platform_4of6.zip - Windows 32-bit
Este kit puede ser instalado en un servidor Oralce, en un Home distinto.
Pasos para instalar Oracle Database Gateway 11g (compatible con 10g).
1.- Crear un directorio nuevo (ORACLE_HOME)
pwd
/opt/oracle/product
mkdir 11_gw
2.- Copiar la carpeta del patch p13390677_112040_platform_5of7.zip en la ruta /opt/oracle/product/11_gw
3.- Descomprimir la carpeta p13390677_112040_platform_5of7.zip
unzip p13390677_112040_SOLARIS64_5of7.zip
4.- Una vez que termine el unzip, se creará la carpeta
gateways, ir a la carpeta
cd geteways
5.- Exportar el DISPLAY
6.- Ejecutar el runInstaller
runInstaller
OUI--Next
OUI--Seleccionar el Directorio creado anteriormente
OUI--Cambiar el Name a OraGt10g_home1
OUI--Revision de prerequisitos
OUI--Seleccionar Gateway for Microsoft SQL Server
OUI--Proporcionar las credenciales de SQL Server
OUI--Ejecutar el root.sh
OUI--Configurar el LISTENER_DG4MSQL
OUI--Finish
Una vez configurado el Gateway:
1.- Ir a la ruta network del nuevo home
cd /opt/oracle/product/11_gw/network/admin
2.- Configurar/Crear/Modificar el listener.ora
# listener.ora Network Configuration File:
/opt/oracle/product/11_gw/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER_dg4msql =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
)
SID_LIST_LISTENER_dg4msql=
(SID_LIST=
(SID_DESC=
(SID_NAME=dg4msql)
(ORACLE_HOME=/opt/oracle/product/11_gw)
(PROGRAM=/opt/oracle/product/11_gw/bin/dg4msql)
)
)
#CONNECT_TIMEOUT_LISTENER = 0
3.- Configurar/Configurar/Modificar el tnsnames.ora
# This is a sample tnsnames.ora that contains the NET8
parameters that are
# needed to connect to an HS Agent
dg4msql =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
(CONNECT_DATA=(SID=dg4msql))
(HS=OK)
)
# This is a sample listener.ora that contains the NET8
parameters that are
# needed to connect to an HS Agent
LISTENER_dg4msql =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
)
SID_LIST_LISTENER_dg4msql=
(SID_LIST=
(SID_DESC=
(SID_NAME=dg4msql)
(ORACLE_HOME=/opt/oracle/product/11_gw)
(PROGRAM=/opt/oracle/product/11_gw/bin/dg4msql)
)
)
#CONNECT_TIMEOUT_LISTENER = 0
6.- Configurar/Configurar/Modificar el tnsnames.ora
# This is a sample tnsnames.ora that contains the NET8
parameters that are
# needed to connect to an HS Agent
dg4msql =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
(CONNECT_DATA=(SID=dg4msql))
(HS=OK)
)
7.- Ir a la ruta del home existente en $ORACLE_HOME/network/admin
En este caso particular contaba con un home existente de la version 10g
cd $ORACLE_HOME/network/admin
8.- Configurar/Configurar/Modificar el listener.ora
LISTENER_dg4msql =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
)
SID_LIST_LISTENER_dg4msql=
(SID_LIST=
(SID_DESC=
(SID_NAME=dg4msql)
(ORACLE_HOME=/opt/oracle/product/11_gw)
(PROGRAM=/opt/oracle/product/11_gw/bin/dg4msql)
)
)
#CONNECT_TIMEOUT_LISTENER = 0
9.- Configurar/Configurar/Modificar el tnsnames.ora
dg4msql =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
(CONNECT_DATA=(SID=dg4msql))
(HS=OK)
)
10.- Volver a cargar el LISTENER_DG4MSQL
lsnrctl reload LISTENER_DG4MSQL
11.- Crear un public database link
CREATE public DATABASE LINK connsql CONNECT TO sa IDENTIFIED BY mypass1 USING 'dg4msql';
12.- Probar la conexión al dblink desde Oracle
select
* from dbo.bdSistema@connsql;