Olá.

Hoje vou falar sobre algo que é bastante frequente na vida de um DBA: efetuar DUMP, ou seja, importar e exportar dados.
Segundo a Oracle, export e import é um caminho simples para se transferir objetos de dados entre banco de dados Oracle, mesmo quando as bases residem em plataformas com diferentes hardwares e softwares.
Antes de executar um Export e import, é necessário atentar para algumas questões:
            - é necessário ter executado o script catexp.sql o catalog.sql;
            - verificar se existe espaço suficiente em disco para a criação do arquivo de exportação, e na importação verificar se existe espaço suficiente em disco para receber os dados;
            - atentar se seu privilégio permite realizar tal execução.
Bom.
Para começar, vou falar do exp e imp.
O exp é o comando utilizado para se exportar objetos de uma base de dados. A estrutura do comando (em sua forma básica) é a seguinte:

- Exportando objetos do esquema (usuário) workspace:
exp workspace/Senha@ORCL  file=d:\EXPORT\workspace.dmp log=d:\EXPORT\exp_workspace.log feedback=1000
            file: é o arquivo de dump gerado
            log: é o arquivo de acompanhamento do que foi realizado pelo export
           feedback: é o retorno que será dado para o log em termos de registros. Ex.: a cada 1000 registros, será marcado um ponto (.) no arquivo de log

- Exportando algumas tabelas do esquema (usuário) workspace:
exp workspace/Senha@ORCL  file=d:\EXPORT\workspace_tables.dmp log=d:\EXPORT\exp_workspace_tables.log feedback=1000 tables=(tabela1, tabela2, tabela3)
            tables: contém o(s) nome(s) da(s) tabels(s)

O imp é o comando utilizado para se importar objetos de um arquivo de dump. A estrutura do comando (também em sua forma básica) é a seguinte:

- Importando objetos do esquema (usuário) workspace para um esquema workspace_new:
imp userid=system file=d:\EXPORT\workspace.dmp log= d:\EXPORT\imp_workspace.log fromuser=workspace touser=workspace_new feedback=1000

- Importando algumas tabelas do esquema (usuário) workspace para um esquema workspace_new:
imp userid=system file=d:\EXPORT\workspace.dmp log= d:\EXPORT\imp_workspace.log fromuser=workspace touser=workspace_new feedback=1000 tables=(tabela1, tabela2, tabela3)

Com o avanço da tecnologia Oracle Database e com suas novas versões, a forma de se importar e exportar evoluiu, e os comandos exp e imp foram substituídos pelos comandos expdp e impdp (os comandos substituídos ainda são suportados nas versões mais recentes, pelo menos até a versão 11G). Esses “novos” utilitários usam as procedures contidas no pacote DBMS_DATAPUMP para executar as tarefas a que se destinam.

Quanto à compatibilidade, os novos utilitários expdp e impdp, embora parecidos com os anteriores (exp e imp), são completamente distintos, e os arquivos gerados e utilizados pelas novas versões não são compatíveis.
Os dump files gerados pelas novas versões não podem ser lidos pelos antigos programas e vice-versa. Seguem diferenças entre os utilitários Data Pump e os antigos programas exp e imp.

  • os programas do Data Pump operam um grupo de arquivos chamado dump file set em vez de um arquivo sequencial;
  • os programas Data Pump acessam arquivos no servidor e não no cliente para melhorar a performance
  • os novos utilitários usam execução paralela para melhorar a performance;
  • o Data Pump usa documento XML para representar metadados no arquivo de dump e não comandos DDL (Data Definition Language) como nas antigas versões;
  • os programas do Data Pump possuem ajustes automáticos e não utilizam parâmetros de ajustes que eram utilizados nas versões anteriores;
  • mídias sequenciais como fitas não são suportadas;
  • se durante uma importação de dados para usando os comandos APPEND ou TRUNCATE ocorrer alguma violação de constraint por alguma linha, o carregamento será terminado e nenhum dado será carregado. Na versão antiga, era carregamento era feito um registro de log das linhas com violação e o carregamento continuava.

Data Pump Export

O expdp extrai a definição do objeto e seu conteúdo, transformando-os em um conjunto de arquivos do sistema operacional chamados dump file set. Esses arquivos podem ser usados pelo utilitário impdp, que pode convertê-lo e inserir seus dados em outro banco Oracle. O conjunto de arquivos de dump é composto por um ou mais arquivos que contém dados, metadados do banco de dados e informações de controle.
O expdp extrai todos os objetos do banco juntamente com os objetos relacionados ou dependentes, por exemplo uma tabela é extraída com índices comentários e permissões.
O Export possui alguns modos de exportação, a saber:

- Full export mode: exporta todos os objetos do banco:
expdp system DIRECTORY=DIR_DPUMP DUMPFILE=workspace.dmp FULL=y LOGFILE=expfull.log

- Schema mode: exporta as tables, views materialized views, clusters, dblinks, sequences, synonyms functions, triggers e stored procedures de um schema especificado:
expdp system DIRECTORY=DIR_DPUMP DUMPFILE=workspace_schema.dmp SCHEMAS=hr

- Table mode: permite a exportação de tabelas específicas do esquema. Permite também a exportação das linhas, permissões, definições, restrições e triggers das tabelas:
expdp system tables=hr.employees directory=DIR_DPUMP dumpfile=workspace_tabela.dmp logfile=FUNCIONARIO.log

- Tablespace mode: nesse modo, apenas as tabelas contidas em uma tablespace, ou grupo de tablespaces especificados, serão exportadas:
expdp system DIRECTORY=funcionarios DUMPFILE=funcionarios_TB.dmp TABLESPACES=USERS

Data Pump Import

O impdp é o complemento do expdp. Ele restaura os objetos de schema exportados previamente pelo programa EXP para um conjunto de arquivos de dump. O Import  permite ao usuário visualizar todos os comandos SQL DDL que serão executados sem a sua efetiva execução, permitindo assim uma análise de seu funcionamento.
A sintaxe do impdp é a seguinte:

- Importando o banco de dados inteiro:
impdp system DIRECTORY=DIR_DPUMP DUMPFILE=workspace.dmp FULL=y

- Importando um schema, remapeando com um novo usuario (schema), chamado amanda:
impdp system DIRECTORY=DIR_DPUMP DUMPFILE=workspace_schema.dmp remap_schema=hr:hr_new remap_tablespace=USERS:tbs_dados

- Importando uma tabela:
impdp system DIRECTORY=DIR_DPUMP DUMPFILE=funcionario_tabela.dmp TABLES=hr.funcionarios

 - Importando uma tablespace:
impdp system DIRECTORY=DIR_DPUMP DUMPFILE=funcionarios_TB.dmp TABLESPACES=tbs_dados


É importante lembrar que para o uso do expdp e impdp é necessário a criação de um DIRECTORY e permissões de uso, como exemplo:

CREATE OR REPLACE DIRECTORY DIR_DPUMP AS ‘/u01/dumps/’;

Bom pessoal!
Por hoje é só!
Espero ter conseguido explicar o assunto de forma fácil de entender.
Até a próxima!

Referências:
Ramalho, José Antônio (2005) – Oracle 10g – Ideal para quem deseja iniciar o aprendizado do Oracle. Editora: Thomson Learning.

Oracle Corporation – Export -/import. Disponível em: http://docs.oracle.com/cd/B19306_01/server.102/b14215/exp_imp.htm. Acessado em: 07/03/2013.

Oracle Base – Oracle Data Pump. Disponível em: http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php. Acessado em 07/03/2013.

Aprender Oracle - Backup: Utilizando Data Pump (EXPDP E IMPDP). Disponível em: http://aprenderoracle.com/2011/07/backup-utilizando-data-pump-expdp-e-impdp/. Acessado em 08/03/2013.