Oracle - DBLINK desde Oracle hacia Postgres

 
Vista:
sin imagen de perfil

DBLINK desde Oracle hacia Postgres

Publicado por anonymous (1 intervención) el 08/10/2017 14:21:43
Buenas, a quien haya batallado con conexiones entre Oracle y otros motores y me pueda dar una mano.

Descargué el controlador ODBC para postgres, creé el link ODBC y funcionó perfecto.

Modifiqué el listener, tnsnames y el init de odbc, tal como indican en algunas web que encontré

Pero no quiere conectar con postgres

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PG_LINK =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MIPC)(PORT = 1521))
(CONNECT_DATA =
(SID = PG_LINK))
(HS = OK)
)
 
(SID_DESC=
         (SID_NAME=PG_LINK)
         (ORACLE_HOME=C:\oraclexe\app\oracle\product\11.2.0\server)
         (PROGRAM=dg4odbc)
)
 
 
HS_FDS_CONNECT_INFO = PG_LINK
HS_FDS_TRACE_LEVEL = 0
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

DBLINK desde Oracle hacia Postgres

Publicado por Manuel (1 intervención) el 29/05/2020 00:23:36
Seguramente ya resolviste este problema pero igual voy a exponer la respuesta por si alguien está viviendo el problema en este momento.

Qué se debe hacer:
1. Instalar el cliente de postgres, el devel de postgres y el odbc postgres, en el server donde tienes el Oracle por supuesto.
2. Localiza el archivo odbc.ini u odbcinstall.ini Normalmente queda instalado en /etc (linux) o en /usr/local (aix)
3. Agrega tu DSN (Data Source Name) y los datos de conexión hacia tu bd postgres (usuario, clave, puerto,...)
4. Lo anterior lo haces con root. Ahora con el usuario Oracle ve a tu directorio de hs (heterogeneous services) al que normalmente llegas con un cd $ORACLE_HOME/hs/admin
5. Crea un archivo del tipo initXXXX.ora y basado en los ejemplos registra en éste tu DSN y la ruta donde está tu odbc así como la ruta donde está el drive que usará
6. Ahora ve a $ORACLE_HOME/network/admin y crea/modifica tu listener para que use el dg4odbc. Haz algo como esto:

1
2
3
4
5
6
7
8
9
SID_LIST_LISTENER_APEX =
  (SID_LIST =
     (SID_DESC =
      (SID_NAME =PSQL)
      (ORACLE_HOME = /opt/oracle/product/18c/dbhomeXE)
      (PROGRAM = dg4odbc)
      (ENVS = LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/hs/lib:/usr/lib64)
     )
   )

7. Ahora agrega una entrada a tu tnsnames.ora para que pueda invocar la conexión. Algo como esto:
1
2
3
4
5
6
7
8
PSQL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.20)(PORT = 1528))
    (CONNECT_DATA =
      (SID = PSQL)
    )
    (HS = OK)
  )

8. Reinicias el listener
9. Creas el dblink en oracle (obviamente el dblink va con un usuario que en la bd postgres está creado y con acceso)
10. Y listo....

Espero le sirva a alguien esta información
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar