Hola de nuevo amigos! Esta semana vamos a ver cómo realizar un expdp/impdp a través de la creación de un network link. Con ello, reduciremos el espacio que necesitamos así como el tiempo en hacerlo. Es una de las Best practices de Oracle, así qué, vamos a verlo!!
Primeramente, tenemos 2 formas de realizarlo. Ambas son totalmente válidas:
- Expdp: Desde origen enviamos a destino
- Impdp: Desde destino leemos y escribimos.
En ambos casos, necesitaremos realizar un configuración previa que deberemos de adecuar a los requisitos de nuestro entorno.
Configuración necesaria para la creación de un Network Link
Para poder realizar nuestro expdp/impdp necesitamos tener creada la estructura:
- Entrada en el tnsnames.ora de la máquina origen/destino
- Crear directorio para almacenar el logfile y dar los permisos pertinentes.
- Crear dblink
Partimos del siguiente escenario:
- Máquina 1: oraclehost1.dominio.es
- SID= ORACL1
- Port=1533
- Máquina 2: oraclehost2.dominio.es
- SID= ORACL2
- Port=1533
1- Entrada tnsnames.ora.
Si lanzamos impdp, añadimos esta entrada en el fichero tnsnames.ora de la máquina ORACL2
ORACL1= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oraclehost1.dominio.es) (PORT = 1533))) (CONNECT_DATA = (SERVICE_NAME = ORACL1)))
ORACL2= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oraclehost2.dominio.es) (PORT = 1533))) (CONNECT_DATA = (SERVICE_NAME = ORACL2)))
2- Crear la carpeta que contendrá el log.
Debemos modificar la cláusula USING especificando el Dblink a utilizar:
Para expdp:
CREATE DATABASE LINK "SYSLINK" CONNECT TO system IDENTIFIED BY oracle123 USING 'ORACL2' /
Para impdp:
CREATE DATABASE LINK "SYSLINK"
CONNECT TO system
IDENTIFIED BY oracle123
USING 'ORACL1'
/
Creación del directorio.
Este paso será necesario para ambas ejecuciones
CREATE OR REPLACE DIRECTORY expdp_dir AS '/backup/datapump';
GRANT READ,WRITE ON DIRECTORY expdp_dir TO system;
Ejecución del comando de expdp/impdp con network link:
Para expdp:
expdp \'/ as sysdba\' network_link=SYSLINK directory=expdp_dir logfile=20210317_impdp_user_ APLICAUSER.log schemas=APLICAUSER
Para impdp:
impdp \'/ as sysdba\' network_link=SYSLINK directory=expdp_dir logfile=20210317_impdp_user_ APLICAUSER.log schemas=APLICAUSER
Seguidamente podemos ver en la siguiente imagen, se ejecuta correctamente:

También, si quieres que te echemos una mano con tu entorno ya sea para la administración o tareas consultoría no dudes en contactarnos!! Nos vemos en la próxima!!
Suscríbete a nuestra newsletter mensual para no perderte ninguna de nuestras publicaciones con un solo email al mes.
¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.
Sígue a GPS en LinkedIn
Podéis ver más información en este documento de Oracle: https://www.oracle.com/a/tech/docs/19c-oracle-data-pump-whats-new.pdf