You are on page 1of 5

ORACLE DATAPUMP

DATAPUMP es una utilidad que aparece en la versin 10G de Oracle Database. Es una
alternativa nueva, ms flexible y rpida que las utilidades imp y exp de anteriores
versiones de ORACLE DATABASE. Datapump provee una API PL/SQL y soporte para tablas
externas.
EXPORT/IMPORT DE TABLAS
El parmetro TABLES es utilizado para especificar las tablas que sern exportadas
Sintaxis:
expdp scott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR
dumpfile=EMP_DEPT.dmp logfile=expdpEMP_DEPT.log

impdp scott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR
dumpfile=EMP_DEPT.dmp logfile=impdpEMP_DEPT.log

EXPORT/IMPORT DE ESQUEMAS
El parmetro SCHEMAS es utilizado para especificar los esquemas a exportar.
Sintaxis:
expdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR
dumpfile=SCOTT.dmp logfile=expdpSCOTT.log

impdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR
dumpfile=SCOTT.dmp logfile=impdpSCOTT.log

EXPORT/IMPORT DE BASE DE DATOS
El parmetro FULL indica que se va a exportar una base de datos completa.
Sintaxis
expdp system/password@db10g full=Y directory=TEST_DIR
dumpfile=DB10G.dmp logfile=expdpDB10G.log

impdp system/password@db10g full=Y directory=TEST_DIR
dumpfile=DB10G.dmp logfile=impdpDB10G.log






INCLUDE y EXCLUDE
Estos parmetros pueden ser usados para limitar los objetos que sern importados o
exportados. Cuando el parmetro INCLUDE es usado solo esos objetos sern importados o
exportados. Cuando el parmetro EXCLUDE es usado todos los objetos sern importados o
exportados a excepcin de aquellos que fueron especificados en el exclude.
Sintaxis:
INCLUDE=object_type [:name_clause] [, ...]
EXCLUDE=object_type[:name_clause] [, ...]

El siguiente cdigo muestra como pueden ser usados estos parmetros en lnea de comandos.
Sintaxis:
expdp scott/tiger@db10g schemas=SCOTT include=TABLE:"IN ('EMP',
'DEPT')" directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log

expdp scott/tiger@db10g schemas=SCOTT exclude=TABLE:"= 'BONUS'"
directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log

Un simple export/import puede incluir mltiples referencias a los parmetros asi como para
exportar tablas, vistas y algunos packages. Se puede utilizar la siguiente sintaxis:
Sintaxis:
INCLUDE=TABLE, VIEW, PACKAGE:"LIKE '%API'"

O

INCLUDE=TABLE
INCLUDE=VIEW
INCLUDE=PACKAGE:"LIKE '%API'"

Mltiples objetos pueden ser apuntados en un comando usando los
operadores LIKE e IN.

EXCLUDE=SCHEMA:"LIKE 'SYS%'"

EXCLUDE=SCHEMA:"IN
('OUTLN','SYSTEM','SYSMAN','FLOWS_FILES','APEX_030200','APEX_PUBLIC_US
ER','ANONYMOUS')"







EXPORT/IMPORT POR RED
El parmetro NETWORK_LINK indica un link a una base de datos que ser usada como el origen
del export/import. El siguiente cdigo indica la manera de usar este parmetro:
CONN / AS SYSDBA
GRANT CREATE DATABASE LINK TO test;

CONN test/test
CREATE DATABASE LINK remote_scott CONNECT TO scott IDENTIFIED BY tiger
USING 'DEV';

En el caso de los exports, el parmetro NETWORK_LINK identifica el link de la base de datos
apuntando al servidor de origen. Los objetos son exportados desde el servidor de origen de la
manera normal, pero son escritos en un objeto directorio en el servidor local. Ambos
servidores requieren tener el asignado el rol EXP_FULL_DATABASE.
expdp test/test@db10g tables=SCOTT.EMP network_link=REMOTE_SCOTT
directory=TEST_DIR dumpfile=EMP.dmp logfile=expdpEMP.log


En el caso de los imports el parmetro NETWORK_LINK trabaja de la misma manera que en el
export a diferencia que en este caso los objetos son importados directamente desde el origen
en el servidor local sin ser escritos en un archivo dump. No es necesario especificar un archivo
para dump pero si es necesario crear un objeto directorio para los logs asociados con la
operacin. Ambos servidores requieren tener el asignado el rol EXP_FULL_DATABASE.


Impdp test/test@db10g tables=SCOTT.EMP network_link=REMOTE_SCOTT
directory=TEST_DIR logfile=impdpSCOTT.log remap_schema=SCOTT:TEST


EXPORTS FLASHBACK
Al usar el parmetro CONSISTENT=Y se indica que el export debe ser consistente en un punto
de tiempo especfico. Por defecto los exports de la utilidad son consistentes en algunas tablas
base, por lo que si se desea que todas las tablas exportadas lo hagan de manera consistente,
se debe usar el parmetro FLASHBACK_SCN o FLASHBACK_TIME.

expdp ..... flashback_time=systimestamp

# in parameter file.
flashback_time="to_timestamp('09-05-2011 09:00:00', 'DD-MM-YYYY
HH24:MI:SS')"

# Escaped on command line.
expdp ..... flashback_time=\"to_timestamp\(\'09-05-2011 09:00:00\',
\'DD-MM-YYYY HH24:MI:SS\'\)\"

Se puede monitorear los Jobs de DATAPUMP mediante el uso de la siguiente vista:
system@db10g> select * from dba_datapump_jobs;

OWNER_NAME JOB_NAME
OPERATION
------------------------------ ------------------------------ --------
----------------------
JOB_MODE STATE
DEGREE ATTACHED_SESSIONS
------------------------------ ------------------------------ --------
-- -----------------
SYSTEM SYS_EXPORT_FULL_01 EXPORT
FULL EXECUTING
1 1

Data Pump API
Junto con las utilidades datapump Oracle provee una API PL/SQL. El siguiente es un ejemplo
como esta API puede ser usada para realizar un export de esquema.
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
l_dp_handle NUMBER;
l_last_job_state VARCHAR2(30) := 'UNDEFINED';
l_job_state VARCHAR2(30) := 'UNDEFINED';
l_sts KU$_STATUS;
BEGIN
l_dp_handle := DBMS_DATAPUMP.open(
operation => 'EXPORT',
job_mode => 'SCHEMA',
remote_link => NULL,
job_name => 'EMP_EXPORT',
version => 'LATEST');

DBMS_DATAPUMP.add_file(
handle => l_dp_handle,
filename => 'SCOTT.dmp',
directory => 'TEST_DIR');

DBMS_DATAPUMP.add_file(
handle => l_dp_handle,
filename => 'SCOTT.log',
directory => 'TEST_DIR',
filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);

DBMS_DATAPUMP.metadata_filter(
handle => l_dp_handle,
name => 'SCHEMA_EXPR',
value => '= ''SCOTT''');

DBMS_DATAPUMP.start_job(l_dp_handle);

DBMS_DATAPUMP.detach(l_dp_handle);
END;
/

You might also like