Contacto

CONTACTAR EN CASO DE EMERGENCIAS Móvil +56963679637 - MAIL : CONSULTADBABLOCK@GMAIL.COM
- SOPORTE REMOTO EN BASE DE DATOS ORACLE - ORACLE LINUX - ORACLE VM SERVER - ORACLE RAC - ORACLE DATA GUARD
- UPGRADES - CAPACITACION

Friday, September 23, 2011

Método para exportar particiones con el API Data Pump

Con el siguiente procedimiento PL/SQL es posible exportar una partición y utilizar todas las ventajas que nos ofrece siempre la programación.

La idea es exportar una partición que tiene un tamaño de 1,5GB desde una tabla. Este procedimiento es muy útil y es muy efectivo. En algún momento trabajare en el método para Importar particiones, ahora si hay algún "amigo" que pueda aportar con el Import siempre será bienvenido por compartir lo que sabe globalmente.


Procedimiento para export particiones


DECLARE
l_dp_handle NUMBER;
BEGIN
l_dp_handle := DBMS_DATAPUMP.open(
operation => 'EXPORT',
job_mode => 'TABLE',
remote_link => NULL,
job_name => 'JOB_EXPORTA_PARTICION',
version => 'LATEST');

DBMS_DATAPUMP.add_file(
handle => l_dp_handle,
filename => 'test_part1.dmp',
directory => 'EXP');

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

Los siguientes parámetros son los encargados de filtrar la metadata que necesitamos exportar:

DBMS_DATAPUMP.metadata_filter(
handle => l_dp_handle,
name => 'SCHEMA_LIST',
value => '''PEPITO''');

DBMS_DATAPUMP.metadata_filter(
handle => l_dp_handle,
name => 'NAME_LIST',
value => '''TABLA_TRANSACCIONES''');

Las comillas simples alrededor del nombre de la partición (que se duplica es requerido por PL / SQL)

DBMS_DATAPUMP.data_filter(
handle => l_dp_handle,
name => 'PARTITION_LIST',
value => '''PARTICION_TABLA_TRANSACCIONES''',
table_name => ' TABLA_TRANSACCIONES ',
schema_name => 'PEPITO');

DBMS_DATAPUMP.start_job(l_dp_handle);

DBMS_DATAPUMP.detach(l_dp_handle);
END;
/

LOGS DataPump

Starting "SYS"."TABLA_TRANSACCIONES":
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 1.5 GB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/AUDIT_OBJ
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "PEPITO"."TBL_TRX_TRANSACCIONES":"PARTICION_TABLA_TRANSACCIONES" 1.371 GB 4289848 rows
Master table "SYS"."TABLA_TRANSACCIONES" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.TABLA_TRANSACCIONES is:
/archive/exp/test_part1.dmp
Job "SYS"."TABLA_TRANSACCIONES" successfully completed at 10:33:01


En el Sistema Operativo

test_part1.log
test_part1.dmp



!!!!!Para Monitorear el progreso del proceso Export!!!!!

set lines 120
col opname for a25 trunc
col username for a15 trunc
col target for a20
col sid for 999999
col serial# for 999999
col %DONE for a8
select b.username,a.sid,b.opname,b.target,round(b.SOFAR*100 / b.TOTALWORK,0) || ‘%’ as “%DONE”,
b.TIME_REMAINING,to_char(b.start_time,’YYYY/MM/DD HH24:MI:SS’) START_TIME
from V$SESSION_LONGOPS b,V$SESSION a where a.sid=b.sid and TIME_REMAINING 0 order by b.SOFAR/b.TOTALWORK;



VIVA LINUX!!!!
Alberto Silva Gallardo

No comments: