ATUALIZADO EM 08/11/2016
Como tenho visto recentemente dúvidas frequentes em fóruns e grupos de discussão sobre as diferenças entre os originais (termo utilizado pela Oracle para diferenciá-los) utilitários Export/Import e o Data Pump, vou comentar sobre eles neste artigo.
Os originais (também conhecidos como antigos ou convencionais) utilitários Export/Import e o DataPump, são as ferramentas principais para exportação e importação de dados no Oracle Database. Neste artigo não vou ensinar a usar estes utilitários nem apresentar detalhes sobre eles, vou apenas comentar sobre as vantagens e desvantagens de cada um, e quando utilizá-los.
Os famosos e antigos utilitários Export/Import (utilitários de linha de comando "exp" e "imp"), utilizados no Oracle Database "possivelmente" desde a versão 5, tornaram-se obsoletos a partir da versão 10G, portanto, eles não sofrem mais atualizações e a Oracle não dá mais suporte a eles, ou seja, não há garantia de que novos recursos e novos tipos de dados sejam suportados. Atualmente a Oracle recomenda utilizá-los somente nas seguintes situações:
- Se você precisar importar arquivos (dump) que foram criados utilizando o original Export;
- Se você precisar exportar arquivos que serão posteriormente importados em versões do Oracle inferiores à versão 10G.
Em certos tipos de recuperações de backups (até a versão 11G) você também poderá precisar deles. Tive uma vez que restaurar dados de uma tabela de um sistema, com o banco principal no ar e sem afetar nada nele. A saída neste caso, foi criar um banco auxiliar, restaurar a tabela nele, e depois exportar via Export tradicional, os dados dessa tabela para o BD principal (veja mais informações no artigo Restauração de tabelas com o RMAN até o Oracle 11G).
Na versão 10G, a Oracle lançou um novo utilitário, chamado Data Pump (ver Imagem 01), muito parecido com os antigos utilitários Export/Import, porém com novos e consideráveis recursos! O DataPump pode ser executado a partir de linha de comando (utilitários "export" e "import") ou através de blocos PL/SQL (chamando o pacote DBMS_DATAPUMP), e ele possuiu uma grande diferença que permite implementar maior segurança: os dumps só podem ser lidos ou gravados em objetos DIRECTORY. As suas principais vantagens é que ele oferece maior velocidade e mais flexibilidade. Como ele consegue ser mais rápido? Por causa de 3 motivos principais:
1- Ele pode realizar direct path no acesso aos dados;
Entre diversos novos recursos (que não existem nos originais Export/Import), o Data Pump permite:
1- Ele pode realizar direct path no acesso aos dados;
2- Diferentemente dos antigos utilitários, o processamento é realizado diretamente no servidor, não havendo transferência de dados entre uma ferramenta cliente e o servidor;
3- Foi projetado para trabalhar com hardware e sistemas operacionais mais modernos.Imagem 01 - Arquitetura do Data Pump |
Entre diversos novos recursos (que não existem nos originais Export/Import), o Data Pump permite:
- Suspender/reativar um export;
- Fazer export/import assíncronos;
- Gerar dumps somente de metadados;
- Executar processos paralelos para otimizar o tempo de execução;
- Estimar tamanho dos dumps;
- Usar database links para mover dados;
- Compactar ou criptografar os dumps;
- Gerar dumps com amostragem de dados.
- Compactar ou criptografar os dumps;
- Gerar dumps com amostragem de dados.
Obs.: Apresento mais detalhes sobre o DataPump no treinamento em videoaulas Administrando Bancos de Dados Oracle.
Bom pessoal, por hoje é só! Espero que o artigo lhe seja útil!
Se você gostou ou tiver qualquer dúvida, é só deixar um comentário que eu responderei o mais breve possível!
[]s
Referências:
Excelente artigo Fabio!
ResponderExcluirDúvida, porque o export datapump consome tablespace temp?
Obrigado pelo comentário.
ExcluirO tablespace temp é utilizado armazenar objetos temporários. O DataPump cria objetos temporários durante o processo de exportação de dados, ok?