El objetivo es poder consultar desde una base de datos Oracle
10gR2 en HP-UX a una tabla que esta en SQL SERVER 2008 en Windows.
En el SQL SERVER ya se creo un usuario para conexión usrsql.
Este usuario tiene que tener permisos de lectura a las tablas que se necesitan
acceder en forma remota desde Oracle. En este ejemplo la tabla clientes.
Datos de este Ejemplo :
Servidor Windows : srvwin1
Servidor HP-UX : srvhpux
Usuario SQLSERVER: usrsql
Tabla: clientes
ODBC Data Source Name : TEST
Usuario Oracle :usrapp
1 - Ingresar al Servidor Windows con “Conexión a
Escritorio Remoto”
2 - Configurar DATA SOURCE ODBC
2.1 -Crear un DATA SOURCE NAME, en este ejemplo se
crea con el nombre TEST
2 2.2 - En la solapa SYSTEM DSN se configura el usuario de conexión,
que puede autenticar con el login de
Windows o con un usuario definido en la base, en este ejemplo se usa “sa”
2.3 - Probar
la conexión ODBC al servidor SQL SERVER
- 3- En el servidor hp-ux srvhpux conectarse a la base Oracle
y verificar que el parámetro GLOBLA_NAMES este en FALSE
$> sqlplus / as sysdba
SQL> select name, display_value from
v$parameter where name='global_names';
NAME DISPLAY_VALUE
------------------------------------------------------------------------
global_names FALSE
Si esta en TRUE hay que modificar a FALSE.
- 4- En el Servidor Windows : Instalar Oracle
Database Server con la opción Software Only en el servidor Windows
- 5 -En el Servidor Windows : Copiar el archivo $ORACLE_HOME/hs/admin/initdg4odbc.ora
con el nombre initDataSourceName.ora en
este ejemplo initTEST.ora y modificar los parámetros
"HS_FDS_TRACE_LEVEL = ".Cambiarlo a OFF
"HS_FDS_CONNECT_INFO = ". Cambiar por el Data Source Name
"HS_FDS_CONNECT_INFO = ". Cambiar por el Data Source Name
Ejemplo:
initTEST.ora
# This is a sample agent init file that
contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = TEST
HS_FDS_TRACE_LEVEL = OFF
#
# Environment variables required for the
non-Oracle system
#
#set <envvar>=<value>
6 - En el servidor Windows en $ORACLE_HOME\network\admin :
Copiar $ORACLE_HOME\network\admin\samples\listener.ora en
$ORACLE_HOME\network\admin y configurar de la siguiente forma:
listener.ora
# This is a sample listener.ora that contains
the NET8 parameters that are
# needed to connect to an HS Agent
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=TEST)
(ORACLE_HOME=C:\oracle\product\11.2.0\dbhome_1)
(PROGRAM=dg4odbc)
)
)
#CONNECT_TIMEOUT_LISTENER = 0
7 - Ejecutar desde una ventana de comandos : cmd
lsnrctl start si no estaba activo y si estaba
activo lsnrctl reload
8 - En el servidor HP-UX agregar en
$ORACLE_HOME/network/admin/tnsnames.ora
# This is a sample tnsnames.ora that contains
the NET8 parameters that are
# needed to connect to an HS Agent
TEST =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=srvwin1)(PORT=1521))
(CONNECT_DATA=(SID=TEST))
(HS=OK)
)
9 - Probar que quedo bien configurado desde
Servidor HP-UX
$>tnsping TEST
TNS Ping Utility for HPUX: Version 10.2.0.5.0
- Production on 09-OCT-2013 12:27:31
Copyright (c) 1997, 2010, Oracle.
All rights reserved.
Used parameter files:
/u01/app/oracle/product/10.2/Db_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=srvwin1)(PORT=1521)) (CONNECT_DATA=(SID=TEST))
(HS=OK))
OK (20 msec)
10 - Crear en el la base de datos Oracle el database link wincnx privado del usuario usrapp
sqlplus / as sysdba
SQL> connect usrapp/usrapp
SQL> create database link wincnx
2 connect to usrsql identified by xxxxx
3 using ‘TEST’;
11- Probar conexion
select * from clientes@wincnx;
Hola estoy tratando de configurar un escenario similar con Oracle Gateway, y me encontre con este tutorial y decidi probar hacerlo de esta forma, pero no entiendo como instalar Oracle en linea en Windows Server, tendria que bajar todo el instalador de la Base de datos oracle para poder tener esa opcion, ya que dentro de las opciones de oracle gateway y oracle cliente no lo veo
ResponderEliminarHola, si te confirmo que tenes que bajar e instalar el producto Oracle Database para Windows Server.
ResponderEliminaryo lo realize la conexion odbc de la forma contraria, del lado del servidor de linux... ahora bien el dblink funciona correctamente pero solo la sentencia select * from tabla@dblink, no me reconoce select columna1,columna2 from tabla@dblink ni tampoco puedo aplicarlo en el where... sabrias que problema es?
ResponderEliminarMuchas gracias Rita Nunez, fue de gran ayuda.
ResponderEliminarSaludos..!!!