Configurando job de exportação do Data Pump pelo Oracle SQL Developer

Pré-requisitos

  • Oracle Database 11g+ (utilizado a versão 21c XE no Oracle Linux 7)
  • Oracle SQL Developer

Criando diretório no linux

Criar pasta que irá armazenar os dumps no linux com o usuário oracle e atribuir permissão ao user oracle grupo oinstall:
sudo su oracle
sudo mkdir /home/oracle/bkp_db
chown oracle:oinstall /home/oracle/bkp_db
sudo chmod +x /home/oracle/backup

Criar diretório no Oracle Database

Agora vamos criar o diretório no database e mapear para a pasta criada acima. Você poderá realizar a criação do JOB com o usuário SYS, porém estou criando com o usuário AAT_SCHEMA portanto é necessário que ele tenha permissão de DBA.

Para atribuir permissão de DBA ao usuário execute no SQL Developer/SQL PLus conectado como SYS as SYSDBA:

grant dba to aat_schema;
GRANT CREATE ANY DIRECTORY TO aat_schema;
GRANT READ,WRITE ON DIRECTORY BACKUP_AAT_SCHEMA TO AAT_SCHEMA;
grant execute on dbms_assert to aat_schema;

Faça login no SQL Developer ou qualquer outro de sua preferência e criamos o diretório:
CREATE OR REPLACE DIRECTORY BACKUP_AAT_SCHEMA AS '/home/oracle/bkp_db';
Pronto. Agora iremos criar o job de exportação.
Atenção: Caso a pasta não seja criada em /home/oracle, NÃO recomendo a criação em qualquer diretório em /home pois irá dar erro de permissão com o usuário oracle - crie uma nova pasta em root (/expdb/backup).

Criar job de exportação utilizando o assistente de exportação do SQL Developer

Para exibir a aba DBA no SQL Developer, acesse o menu Exibir > DBA. Crie uma nova conexão com o usuário SYS ou com o que você tenha atribuido a permissão de DBA.
Para criar um job de exportação basta seguir os passos abaixo:

Agora com o JOB criado, no SQL Developer aba de Conexões acesse Programador > Jobs, localize e com o botão direto no JOB clique na opção "Editar".

Ajuste o JOB para montar o nome do arquivo com o intervalo configurado, no meu caso configurei para 1 dia e ficara no padrão "EXPDAT-SCHEMA-DATA". Caso isso não seja feito o job irá dar erro na próxima execução pois já existe o dump gerado.
DECLARE
  h1 number;
  dump_name varchar2(100);
  s varchar2(1000):=NULL;
  errorvarchar varchar2(100):= 'ERROR';
  tryGetStatus number := 0;
  success_with_info EXCEPTION;
  PRAGMA EXCEPTION_INIT(success_with_info, -31627);
begin
  dump_name := 'EXPDAT-AAT_SCHEMA-'||TO_CHAR(SYSDATE,'RRRRMMDD');

  h1 := dbms_datapump.open (operation => 'EXPORT', job_mode => 'SCHEMA', job_name => dump_name, version => 'COMPATIBLE');
  tryGetStatus := 1;
  dbms_datapump.set_parallel(handle => h1, degree => 1);
  dbms_datapump.add_file(handle => h1, filename => dump_name||'.LOG', directory => 'BACKUP_AAT_SCHEMA', filetype => 3);
  dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0);
  dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''AAT_SCHEMA'')');
  dbms_datapump.add_file(handle => h1, filename => dump_name||'.DMP', directory => 'BACKUP_AAT_SCHEMA', filesize => '500M',  filetype => 1, reusefile => 1);
  dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1);
  dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC');
  dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS');
  dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
  dbms_datapump.detach(handle => h1);
  errorvarchar := 'NO_ERROR';
END;
Salve e agora basta executar o job para testar e aguardar. Você pode acompanhar o status e erros dentro de Data Pump > Jobs de Exportação:


Depois de finalizado basta verificar a criação dos arquivos:

Pronto.✌

Comentários