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;