Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Database Link

Estas en el tema de Database Link en el foro de Oracle en Foros del Web. Hola, os cuento el problema que tengo, a ver si se explicarlo correctamente. Estoy intentando conectar la base de datos A con la base de ...
  #1 (permalink)  
Antiguo 03/04/2008, 03:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 7 meses
Puntos: 0
Database Link

Hola, os cuento el problema que tengo, a ver si se explicarlo correctamente.
Estoy intentando conectar la base de datos A con la base de datos B, para migrar parte de la información que ya existe en A hacia B.
Uso el TOAD como cliente de Base de Datos y además tengo instaladas las herramientas de Oracle de administración (Enterprise Manager Console).
El problema es que cuando hago el DBLink, ya sea con el TOAD o con la consola de Oracle no funciona.
Me explico, he probado a crearlo con ambas herramientas, y eso está funcionando bien porque cuando lo creo con el TOAD, luego aparece en la consola, y viceversa, así que hasta ahí puedo decir que están bien configurados, el problema es que cuando hago la primera consulta SELECT * FROM TABLAdeA@DBLINK (siendo DBLINK el nombre que yo he puesto al enlace al crearlo) en TOAD me devuelve el error (ORA-12154: TNS:could not resolve service name). Además, en la consola de ORACLE (Enterprise Manager COnsole) hay un botón para probar el DBLink y al pinchar me dice que "El enlace de base de datos no está activo".
Bien, ahora el escenario, ambas bases de datos son 9i y están en una máquina en la misma red en la que está mi máquina (Ya sé que no me haría falta un DBLink estando las bases en la misma máquina y siendo la misma versión, pero en un futuro se llevarán a máquinas diferentes), además yo no soy administrador de la base de datos pero con la consola tengo permisos para crear usuarios y modificar permisos así que puede ser que la máquina en la que trabajo tenga privilegios de admin en la BBDD (porque no he tenido que introducir usuario para usar la consola y modificar usuarios).

Si alguien puede ayudarme lo agradecería porque llevo ya dos días dándome de cabezazos y lo único que he conseguido es mil versiones del tsnames.ora (ahora pongo el contenido) y cambiar el link de público a no público, hacerlo desde una base de datos o desde la otra...pero de solución nada,


tsnames.ora
DESA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP_SERVER_BBDD)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = DESA)
)
)


SQL del DBLINK
CREATE PUBLIC DATABASE LINK "LINKINFERNAL" CONNECT TO
"USER_BBDD_A"
IDENTIFIED BY "PASS_BBDD_A"
USING 'DESA'


Muchas gracias por adelantado chic@s.
  #2 (permalink)  
Antiguo 03/04/2008, 09:19
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Re: Database Link

Hola,

Cita:
...ambas bases de datos son 9i y están en una máquina en la misma red en la que está mi máquina (Ya sé que no me haría falta un DBLink estando las bases en la misma máquina y siendo la misma versión, pero en un futuro se llevarán a máquinas diferentes)...
Un dblink es para comunicar dos instancias, no tiene nada que ver que esten en el mismo equipo o que sean de la misma version, para transacciones distribuidas, te hace falta siempre un dblink.

En cuanto al tnsnames.ora, quien tiene que conocer la informacion de la base de datos de destino es la base de datos de origen, por lo tanto esa entrada tiene que estar en ORACLE_HOME/network/admin/tnsnames.ora pero del servidor.


Saludos
  #3 (permalink)  
Antiguo 07/04/2008, 03:46
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Database Link

Bien, el DbLink es para comunicar instancias, o sea que me da lo mismo donde se encuentren las BDs...Entonces para hacer una migración de datos de una BD a otra, hay otra cosa utilizable que no sea un dbLink?
En cualquier caso, es posible que alguien tenga que activar el dbLink que me aparece como "no activo"?
Porque me salta el error "TNS:could not resolve service name" en TOAD cuando he creado el dbLink y trato de usarlo en un simple SELECT? Puede ser que tenga que estar reflejado en el tnsnames.ora de la máquina que tiene la bd???

Gracias de nuevo

JAvi
  #4 (permalink)  
Antiguo 07/04/2008, 03:57
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Re: Database Link

Hola,

Cita:
Puede ser que tenga que estar reflejado en el tnsnames.ora de la máquina que tiene la bd???
Es lo que te comentaba en el post anterior, quien establece la comunicacion es la base de datos, el TOAD instalado en tu maquina no tiene nada que ver.

Toda la informacion necesaria para conectarse a una instancia a traves de un dblink tiene que estar en el tnsnames.ora de la base de datos que contiene el dblink.

Saludos
  #5 (permalink)  
Antiguo 07/04/2008, 06:51
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires,Argentina
Mensajes: 16
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Database Link

hola ,

podes hacer que el dblink no pase por el tnsnames

configuralo de esta forma
Código:
CREATE DATABASE LINK "PRUEBA.XXX.COM"
 CONNECT TO MI_ESQUEMA
 IDENTIFIED BY <PWD>
 USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = tcp.world) (PROTOCOL = TCP) (Host = oracle9i) (Port = 1521))) (CONNECT_DATA = (SID = SID)))';
por supuesto tenes que reemplazar por tus datos reales

Juan carlos
  #6 (permalink)  
Antiguo 09/04/2008, 08:27
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Database Link

juan carlos, muchas gracias, funcionó haciéndolo directamente.
A decir verdad no entiendo porqué, ya que el comando SQL que se creaba con el Enterprise Manager Console era clavado al comando que me has dado tú...
Seguramente fuese yo cometiendo algún error, ya fuese en el tnsnames.ora o simplemente al crearlo.
Muchas gracias, DUDA RESUELTA (3er milagro).

Javi
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:18.