COMO REALIZAR UN EXPORT DE BASE DE DATOS USANDO DBMS_DATAPUMP PACKAGE

E-mail Imprimir PDF

Objetivo

Mostraremos varios ejemplos de cómo realizar un export de una base de datos oracle usando dbms_datapump.

Export Full con dbms_datapump

Para  ello podemos utilizar la siguiente sintaxis

set serverout on
declare
  dp_handle NUMBER;
  job_status VARCHAR2(30);
begin
  dp_handle := dbms_datapump.open (operation => 'EXPORT',
                                   job_mode => 'FULL');
  dbms_datapump.add_file (handle => dp_handle,
                          filename => 'dba11g.dmp',
                          directory => 'EXPORT',
                          filetype => SYS.DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE);
  dbms_datapump.add_file (handle => dp_handle,
                          filename => 'dba11g.log',
                          directory => 'EXPORT',
                          filetype => SYS.DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
  dbms_datapump.start_job (dp_handle);
  dbms_datapump.wait_for_job (handle => dp_handle,
                              job_state => job_status);

  dbms_output.put_line('DataPump Export - '||to_char(sysdate,'DD/MM/YYYY HH24:MI:SS ')||
'Status '||job_status);
  dbms_datapump.detach (handle => dp_handle);
end;
/

Algunas notas sobre el procedimiento

job_mode: Indica el tipo de export que se va a realizar. En el caso de un export completo de base de datos se indica full.
filename: El nombre que va a tener el fichero de export o log
directory: Directorio donde se va a dejar el export o el fichero de log. Este directorio tiene que estar previamente creado y tener permisos para escribir en él.
Filetype: Tipo de fichero que se va a escribir
SYS.DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE en caso de ser un fichero de dmp.
SYS.DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE en caso de ser un fichero de log.

Export schema con dbms_datapump

En este caso crearemos un procedimiento como el siguiente:

set serverout on
declare
  dp_handle NUMBER;
  job_status VARCHAR2(30);
begin
  dp_handle := dbms_datapump.open (operation => 'EXPORT',
                                   job_mode => 'SCHEMA');
  dbms_datapump.add_file (handle => dp_handle,
                          filename => 'bea.exp',
                          directory => 'EXPORT',
                          filetype => SYS.DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE);
  dbms_datapump.add_file (handle => dp_handle,
                          filename => 'bea.log',
                          directory => 'EXPORT',
                          filetype => SYS.DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
  dbms_datapump.metadata_filter (handle => dp_handle,
                                 name => 'SCHEMA_EXPR',
                                 value => 'IN (''BEA'')');
  dbms_datapump.start_job (dp_handle);
  dbms_datapump.wait_for_job (handle => dp_handle,
                              job_state => job_status);
  dbms_output.put_line ('DataPump Export - '||to_char(sysdate,'DD/MM/YYYY HH24:MI:SS ')||
'Status '||job_status);
  dbms_datapump.detach (handle => dp_handle);
end;
/

Algunas notas sobre el procedimiento

job_mode: en este caso indicamos que queremos realizar el export de un esquema (SCHEMA)
con dbms_datapump.metadata_filter filtramos el esquema sobre el que queremos tener un backup. En este caso hacemos un export del esquema Bea

Monitorizar los procesos datapump

Para ver los procesos datapump que se están ejecutando en la base datos o para ver si ha existido algún problema con alguno de ellos podemos realizar una consulta a la tabla DBA_DATAPUMP_JOBS.

select * from DBA_DATAPUMP_JOBS;

 

Última actualización el Viernes, 15 de Febrero de 2013 12:17  

Haz login con tu cuenta orasite

Haz login con tu cuenta de:

Errores Oracle más comunes