Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Oracle (http://www.forosdelweb.com/f100/)
-   -   Database Link (http://www.forosdelweb.com/f100/database-link-572119/)

cintaroja 03/04/2008 03:09

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, :neurotico


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.

matanga 03/04/2008 09:19

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

cintaroja 07/04/2008 03:46

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

matanga 07/04/2008 03:57

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

jcalcalde 07/04/2008 06:51

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

cintaroja 09/04/2008 08:27

Re: Database Link
 
juan carlos, muchas gracias, funcionó haciéndolo directamente.:aplauso::aplauso:
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
:-):arriba::cool::-D:adios:


La zona horaria es GMT -6. Ahora son las 05:21.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.