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
    -- Abrindo um job de exportação no Data Pump
    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'
        )
    );

    -- Aplicando filtro para exportação dos schemas selecionados
    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

Que tal resolver agora?