Database Links en Oracle

Estándar

¿Que es un database link?
Un Database Link es como un puntero unidireccional desde una base de datos hacia otra base de datos remota, que nos permite acceder a las tablas de la base de datos remota como si fueran locales de manera cómoda y sencilla.
Existen dos tipos de database link:
– Shared: permite conexión a múltiples usuarios.
– Public: disponible para todos los usuarios.
Por defecto, si no especificamos ninguna de estas opciones, el dblink será privado para el usuario que lo ha creado.

Prerequisitos:
Deberemos tener privilegios del sistema para crear database link «CREATE DATABASE LINK».
Además, debemos tener permisos del sistema para crear sesión en la base de datos remota «CREATE SESSION».

Si queremos crear un database link podemos ejecutar:

CREATE [SHARED|PUBLIC] DATABASE LINK dblink_name
CONNECT TO user
IDENTIFIED BY password
USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST =
hostname)(PORT = 1521)) (CONNECT_DATA = (SID = sidname)))';

Así creamos un dblink llamado “dblink_name” que nos permite conectar desde la base de datos local a una base de datos remota Oracle, situada en el host=”hostname” con el SID=”sidname″.
Para usar el dblink, ejecutamos los comandos normalmente concatenando al identificador de la tabla @dblink_name:

SELECT * FROM table_name@dblink_name;

El Dblink incluso te permite copiar campos BLOB de tablas si estas mantienen la misma estructura, por lo que es una opción interesante a la hora de hacer migraciones de un esquema de base de datos a otra, ya que eliminaríamos el paso de exportar/importar el esquema en la base da datos local antes de comenzar a migrar.

Más info: http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm

Deja un comentario