lunes, 22 de diciembre de 2014

Como Configurar Heterogeneous Services

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
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;














4 comentarios:

  1. 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

    ResponderEliminar
  2. Hola, si te confirmo que tenes que bajar e instalar el producto Oracle Database para Windows Server.

    ResponderEliminar
  3. yo 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?

    ResponderEliminar
  4. Muchas gracias Rita Nunez, fue de gran ayuda.

    Saludos..!!!

    ResponderEliminar