EXECUTANDO DATAPUMP EXPORT (EXPDP) NO ORACLE RDS

Neste tutorial, vamos explorar como realizar uma exportação de dados utilizando o Datapump Export via a API DBMS_DATAPUMP no Oracle Database. Este método é altamente flexível e permite exportar dados de forma eficiente e controlada.

Etapa 1: Configurando a Exportação

Antes de iniciar a exportação, certifique-se de executar este código no banco de dados de origem, onde deseja realizar o export:

 DECLARE
Bkp NUMBER;
s VARCHAR2(30000);
BEGIN
Bkp := DBMS_DATAPUMP.OPEN(operation => 'EXPORT', job_mode => 'SCHEMA', job_name => null);
-- Adicionando arquivo de exportação
DBMS_DATAPUMP.ADD_FILE(handle => Bkp, filename => 'datapump_source_DATA_F.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file, reusefile => 1);
-- Adicionando arquivo de log
DBMS_DATAPUMP.ADD_FILE(handle => Bkp, filename => 'datapump_source_DATA_F.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file);
-- Selecionando owners para exportação
SELECT listagg('''' || owner || '''', ', ') WITHIN GROUP (ORDER BY owner) INTO s
FROM (
SELECT username AS owner
FROM dba_users
WHERE username NOT IN (
'ANONYMOUS', 'SYS', 'SYSTEM', 'SYSAUX',
'APPQOSSYS', 'AUDSYS', 'CTXSYS', 'DBSNMP',
'DIP', 'GSMADMIN_INTERNAL', 'GSMCATUSER', 'GSMUSER',
'ORACLE_OCM', 'SYSBACKUP', 'SYSDG', 'SYSKM',
'XDB', 'XS$NULL', 'RDSADMIN', 'SYSRAC',
'SYS$UMF', 'REMOTE_SCHEDULER_AGENT', 'GGSYS',
'DBSFWUSER'
)
);
DBMS_DATAPUMP.metadata_filter(Bkp, 'SCHEMA_LIST', s);
-- Iniciando o job de exportação
DBMS_DATAPUMP.START_JOB(Bkp);
END;
/

Etapa 2: Acompanhando o Progresso da Exportação

Para verificar o progresso da exportação, execute o seguinte comando no banco de dados de origem:

SELECT text
FROM TABLE(rdsadmin.rds_file_util.Read_text_file (
p_directory => 'DATA_PUMP_DIR',
p_filename => 'datapump_source_DATA_F.log'
));

Etapa 3: Verificando o Arquivo Gerado

Para verificar o arquivo gerado no diretório, utilize o seguinte comando no banco de dados de origem:

SET LINES 200 PAGES 200
COL filename FORMAT A100
SELECT filename,
ROUND(filesize / 1024 / 1024 / 1024) AS SIZE_GB
FROM TABLE(rdsadmin.rds_file_util.Listdir('DATA_PUMP_DIR'))
WHERE filename LIKE 'datapump_source_DATA_F%'
ORDER BY mtime;

Para as próximas etapas sobre transferência para o ambiente de destino e criação de DBLINK e DIRECTORY, sugiro verificá-las diretamente na documentação oficial da Oracle , pois podem variar dependendo da configuração e políticas de segurança do ambiente.

Criado por : Carlos Furushima

Posts relacionados_