Dando continuidade ao post anterior, sobre expdp, vou falar hoje sobre o impdp.
Assim como o expdp, o impdp é uma evolução do antigo imp. Alguns de seus recursos:
- Tem a capacidade de fazer carga de dados para um banco de dados inteiro, um esquema específico, uma tablespace específica e até mesmo alguns objetos específicos (como tabelas e store procedures);
- É utilizado ao transportar tablespaces para o banco de dados;
- Suporta filtros de dados, permitindo assim selecionar os dados a serem carregados;
- Suporta filtro de metadados, permitindo controlar os tipos de objetos a serem carregados;
- Permite “pausar e continuar” trabalhos de importação – semelhante ao expdp;
- Permite conectar/desconectar de um trabalho de importação em execução;
- Permite reiniciar trabalhos que falharam a partir do ponto de falha;
- Suporta paralelismo e permite atribuir um número de threads que será utilizado durante a importação;
- Suporta operações de modo de rede, permitindo carregamento a partir de outro banco de dados diretamente;
- Permite ter controle sobre a versão relacionada ao banco de dados do objeto que é importado, assegurando que seja compatível com uma versão de nível mais baixo de banco de dados.
UTILIZANDO O IMPDP
Na maioria dos casos, o user precisa ter apenas os mesmos privilégios que o user que criou o arquivo de dump, ou seja, o user que executou o expdp. Se a importação for feita utilizando o parâmetro full, o user deverá ter o privilégio IMP_FULL_DATABASE.
PARÂMETROS E EXEMPLOS
Importação completa de banco de dados:
- full: importa todo o arquivo (dump) para o banco de dados
- job_name: define o “nome de trabalho”. Com isso é possível se desconectar do trabalho para entrar em modo interativo, e se reconectar ao trabalho
- nologfile: desativa o registro de log da operação
- dumpfile formata o nome do arquivo, que será gravado no diretório pré-definido no objeto directory de nome DUMPS_DIR
Importação de tabespace:
- tablespaces: especifica quais tablespaces serão importadas
- table_exists_action: determina qual ação deve ser tomada quando a tabela a ser importada já existir na base de dados. As opções são:
- table_exists_action=append – “adiciona” aos dados já existentes na tabela;
- table_exists_action=replace – exclui a tabela, recria, e carrega os dados;
- table_exists_action=skip – não carrega os dados e pula para o próximo objeto (DEFAULT);
- table_exists_action=truncate – remove todas as linhas antes da carga.
Importação de dados específicos de uma tabela
- tables: especifica quais tabelas serão importadas
- content [ALL, DATA_ONLY, METADATA_ONLY] – define o conteúdo das importações: somente dados, somente metadados, ou ambos.
Importação de tipos de objetos específicos
Neste exemplo vou usar um arquivo de parâmetros. Considere um arquivo chamado parfile.txt com o conteúdo abaixo:
E agora executamos a importação fazendo uso do arquivo de parâmetros:
impdp hr/hr parfile=d:oracledumpsparfile.txt
- include: define os tipos de objetos que serão importados, permitindo filtros.
Muito bom o post, tanto esse quanto o do expdp. Sou novato na área, e me ajudou bastante. Já coloquei o blog nos meus favoritos, hehehe
Bom post!
Escrevi algo parecido em: http://raphaeloafernandes.blogspot.com.br/2013/03/oracle-export-e-import.html
Confere se der!!
Tenho uma dúvida.
Meu problema, tenho um banco e preciso exportar todas as tabelas, mas algumas preciso que mantenha os registros e outras não.
Tem alguma forma de fazer isso?
Lucas, você precisa fazer em duas etapas. Faça o export primeiro de todas as tabelas SEM os dados. Depois vc faz outro export somente dos dados das tabelas que vc deseja os registros, ok?