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;