Acceso remoto con dblink de oracle con global_names o sin ellos

"Sin saber del tema lo facil puede parecer difícil"

La creación de un database link de oracle para apuntar de una base de datos a otra en principio es fácil, más si lees el post de dataprix Acceso remoto mediante dblink de Oracle. La lastima es que en ese post no se diga nada de los global_names de cada base de datos y como se renombra el dblink si los global_names estan activos.

Ejemplo.

  1. Creamos el dblink a una base de datos ficticia rrhh (previa configuración tnsnames...):
    create database link dblinkrrhh connect to rrhh identified by recursoshumanos USING 'rrhh';
  2. Consultamos su nombre y sorpresa, no se llama dblinkrrhh si no DBLINKRRHH.REGRESS.RDBMS.DEV.US.ORACLE.COM. Lo podemos ver con la siguiente consulta:
    select * from dba_db_links;

    Ahora que?

 

En este tema del foro sobre un problema con DBLinks demasiado largos puedes encontrar una pequeña explicación de porqué el nombre del database link queda tan largo. Básicamente es porque al nombre se le agrega el dominio que tenga definida la base de datos.

Lo normal es cambiar el nombre del dominio por el de tu red:

SQL> alter database rename global_name to miBD.mi.dominio.com;

En el foro también puedes consultar la respuesta al tema Oracle global_names que tú mismo has abierto