Pular para o conteúdo

Como Otimizar a velocidade de Exportação de dados usando o parâmetro PARALLEL do Oracle Data Pump

Data Pump – Explorando o Paralelismo (PARALLEL)

Imagine que você está coordenando a carga de caminhões em um depósito. Quanto mais caminhões você usar simultaneamente, mais rápido poderá transportar os itens. No Oracle Data Pump, o parâmetro PARALLEL funciona como esses caminhões, permitindo que múltiplos processos trabalhem juntos para exportar dados de maneira mais rápida e eficiente.

O parâmetro PARALLEL define o número máximo de processos que executam uma exportação no Oracle Data Pump. Por padrão, apenas um processo (DWnn) será usado. No entanto, ao configurar PARALLEL com valores maiores, você pode dividir o trabalho entre vários processos, reduzindo significativamente o tempo de execução.

  • Cada processo escreve em um dump file separado.
  • É necessário usar placeholders (%U ou %L) para nomear os arquivos de dump e evitar conflitos.
  • O paralelismo é limitado pelo número de CPUs disponíveis na máquina.

A configuração básica para exportação paralela é:

Bash
expdp USR_FULANO/senha@PDB01 FULL=Y PARALLEL=2 DIRECTORY=DATA_PUMP_X LOGFILE=LOG_PARALLEL.LOG DUMPFILE=DUMP_PARALLEL_%U.DMP

  • FULL=Y: Exporta todo o banco de dados.
  • PARALLEL=2: Configura dois processos de exportação em paralelo.
  • DIRECTORY=DATA_PUMP_X: Especifica o diretório onde os arquivos serão salvos.
  • LOGFILE=LOG_PARALLEL.LOG: Gera um log do processo.
  • DUMPFILE=DUMP_PARALLEL_%U.DMP: Nomeia os arquivos de dump, com %U criando sufixos numéricos para cada processo.
Bash
expdp USR_FULANO/senha@PDB01 FULL=Y PARALLEL=2 DIRECTORY=DATA_PUMP_X LOGFILE=LOG_PARALLEL.LOG DUMPFILE=DUMP_PARALLEL_%U.DMP

image 16
PARALLEL

A exportação será dividida entre dois processos, cada um escrevendo em um arquivo de dump separado (dump_PARALLEL_01.dmp e dump_PARALLEL_02.dmp). Durante o processo, você pode observar os processos ativos com os seguintes comandos:

Ao executar os comandos abaixo, podemos verificar os processos ativos que estão operando durante a exportação paralela:

Bash
ps aux | grep dw
ps aux | grep ora_dm

image 17
PS AUX

Na imagem acima, podemos observar o que acabamos de configurar. Veja que:

Processos DW (ora_dw): Dois processos (ora_dw00_orcl e ora_dw01_orcl) estão ativos. Isso confirma que o parâmetro PARALLEL=2 foi aplicado corretamente. Cada processo DW é responsável por escrever em um arquivo dump específico, dividindo o trabalho de exportação e acelerando a conclusão do job.

Processo DM (ora_dm): Há apenas um processo ativo (ora_dm00_orcl), que atua como a tabela mestre dessa operação. Ele coordena as atividades dos processos DW, garantindo que todas as partes da exportação sejam realizadas com precisão e organizadas corretamente.

Esse comportamento reflete a eficiência da exportação paralela: enquanto os processos DW realizam a exportação de dados, o processo DM gerencia e supervisiona o progresso, como um maestro organizando sua orquestra.

Monitore esses processos durante a execução de jobs paralelos para confirmar que os recursos do sistema estão sendo bem utilizados e que não há processos inativos. 

Existem algumas limitações e Restrições

Embora o PARALLEL seja poderoso, ele tem algumas limitações importantes:

Disponível apenas no Oracle Database Enterprise Edition 11g ou superior.

O usuário deve ter a role DATAPUMP_EXP_FULL_DATABASE.

Objetos não exportados em paralelo:

  • TRIGGER
    • VIEW
    • SEQUENCE
    • CONSTRAINT
    • REF_CONSTRAINT

Transportable tablespaces não podem ser exportados em paralelo.

Parâmetro NETWORK_LINK não suporta exportação paralela de metadados.

Uma das funcionalidades mais impressionantes do Data Pump é a possibilidade de ajustar o valor do parâmetro PARALLEL de forma dinâmica enquanto a exportação está em andamento. Isso permite adaptar o job às condições do ambiente, seja aumentando a paralelização para aproveitar recursos disponíveis, seja reduzindo-a para evitar sobrecarga.

Cenário Prático: Aumentando o PARALLEL Durante a Execução

Vamos simular um cenário onde iniciamos uma exportação com PARALLEL=2 e, durante o processo, aumentamos esse valor para 4 usando o modo interativo.

Bash
[oracle@oriondata ~]$ expdp USR_FULANO/senha@PDB01 FULL=Y PARALLEL=2 DIRECTORY=DATA_PUMP_X LOGFILE=LOG_PARALLEL.LOG DUMPFILE=DUMP_PARALLEL_%U.DMP

O comando acima inicia uma exportação completa (FULL=Y) com dois processos paralelos (PARALLEL=2). No início, cada processo DW escreve em seu próprio arquivo dump, conforme definido pelo placeholder %U no nome dos arquivos (DUMP_PARALLEL_%U.DMP).

image 20
MODO INTERATIVO

Durante a exportação, pressionamos CTRL+C para entrar no modo interativo, onde é possível ajustar parâmetros sem interromper o job.

Bash
Export> PARALLEL=4
Export> CONTINUE_CLIENT

  • PARALLEL=4: O valor do paralelismo é alterado de 2 para 4, dobrando o número de processos DW.
  • CONTINUE_CLIENT: Retoma a execução do job com as novas configurações aplicadas.

Resultado Imediato,após o ajuste, podemos verificar que o número de processos DW aumentou de dois para quatro. Veja como isso é refletido nos processos ativos:

image 21
PARALLEL=4

Os quatro processos ora_dw (DW00 a DW03) indicam que o paralelismo foi expandido com sucesso.
Cada processo DW está trabalhando simultaneamente para dividir e acelerar o trabalho de exportação.
O processo ora_dm continua único, atuando como a tabela master da exportação. Ele gerencia as operações e garante a coordenação entre os processos DW

Ao concluir a exportação, observamos que os dumps foram divididos entre os quatro processos DW. Cada arquivo dump contém uma parte dos dados exportados:

Essa divisão permite que o job seja concluído com maior eficiência e rapidez.

  • Se houver trabalho disponível para ser dividido, o aumento do paralelismo ocorre de forma imediata.
  • Reduzir o paralelismo evita sobrecarga em ambientes limitados e pode liberar recursos para outras operações.
  • A alteração do parâmetro é dinâmica e não interrompe o job em execução, garantindo continuidade nas operações.

Com essa flexibilidade, o Data Pump demonstra ser uma ferramenta robusta, permitindo ajustes em tempo real para atender às demandas de diferentes cenários e recursos disponíveis.

Não é uma regra mas seria bom o uso de

  • Use placeholders (%U ou %L): Essenciais para exportação paralela.
  • Verifique o número de CPUs: Use o comando lscpu para confirmar o limite de paralelismo.
  • Teste antes em ambientes menores: Avalie o impacto de diferentes valores de PARALLEL.
  • Armazenamento compartilhado: Certifique-se de que os arquivos de dump estejam em um local acessível por todas as instâncias em ambientes RAC.

O parâmetro PARALLEL é uma ferramenta essencial para otimizar exportações no Oracle Data Pump. Ele reduz o tempo de execução ao dividir o trabalho entre múltiplos processos, aproveitando ao máximo os recursos disponíveis. Compreender suas limitações e melhores práticas permite um uso eficiente e seguro, especialmente em ambientes corporativos complexos.

Explore o poder do PARALLEL em seu laboratório e veja como ele pode transformar suas operações de exportação de dados!

Tercio Haring

Tercio Haring

Tércio Haring é pai do Max e um entusiasta incansável de TI. Sua paixão pelo próximo o levou a ser socorrista, sempre pronto para ajudar. No universo da tecnologia, seu objetivo vai além de simplesmente compartilhar conhecimento; ele busca manter sua mente conectada ao futuro e abraçar os desafios como oportunidades disfarçadas. Escreve com o objetivo de tornar o complexo mundo dos bancos de dados mais acessível e compreensível, sempre com um toque de humor para tornar a jornada mais leve e divertida. Se você procura insights valiosos, explicações claras e, claro, algumas boas risadas, Tércio é a pessoa certa para te guiar. Junte-se a ele para explorar, aprender e crescer nesse vasto e fascinante universo Oracle!

Prestigie o autor e deixe o seu comentário:

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress