Quando precisamos transferir os dados de um servidor Oracle para outro, ou para realizarmos cópias de segurança, uma das alternativas é utilizar a ferramenta “exp”, que está presente em todas as versões do Oracle.
Esta ferramenta normalmente executada em linha de comando, possui diversos parâmetros para definir o que deve ser exportado. O objetivo deste artigo é explicar alguns destes parâmetros.
No final serão abordadas algumas informações sobre a ferramenta “imp” que realiza o oposto do “exp”, ela importa os objetos para o banco de dados.
1. Exportando dados no Oracle com o “Exp”
O utilitário “exp” irá gerar um arquivo (dump) binário com os objetos e as estruturas dos mesmos.
Este arquivo pode ser enviado para outro servidor, com sistema operacional distinto que mesmo assim será possível realizar a importação dos dados. Somente é necessário cuidar para que a versão do programa importador (imp) não seja anterior a versão que foi empregada para gerar o arquivo.
É possível usar este utilitário de forma interativa, neste artigo serão mostrados os parâmetros mais comuns quando executado em linha de comando.
· String de conexão com o banco de dados
Para conectar com o Oracle precisamos informar o usuário, a senha e a instância do Oracle.
Formato: usuário/senha@instância, caso seja executado o comando diretamente no servidor, onde exista somente uma instância do Oracle, não precisaremos informar a instância.
· Arquivo de destino
O arquivo que iremos gerar deve ser informado no parâmetro file. Normalmente a extensão utilizada é “dmp”.
Formato: file=caminho\arquivo.dmp
· Log da exportação
Caso seja interessante gerar um log com informações sobre a exportação dos objetos.
Formato: log=caminho\arquivo.log
· Exportação do banco de dados inteiro
Quando for necessário exportar todo o banco de dados utilize o parâmetro FULL.
Formato: full=y
· Exportação de Grants (direitos)
Normalmente o exp grava os grants relacionados a cada objeto, porém se estiver exportando somente alguns objetos e/ou usuários, muitas vezes os direitos atribuídos em um ambiente não tenham sentido no servidor de destino dos objetos.
Formato: grants=n
· Exportação de Índices
Caso não seja necessário enviar os índices para o Oracle de destino.
Formato: indexes=n
· Seleção de Tabelas
Para selecionar somente algumas tabelas para exportar, informe o parâmetro Table.
Formato: tables=(Tabela1,Tabela2,...,TabelaN)
· Exportação de Triggers
Caso não seja necessário enviar as triggers para o Oracle de destino.
Formato: triggers=n
2. Importando com o “Imp”
Algumas considerações são importantes no momento de importar os dados em versões diferentes do Oracle:
· Usar um programa imp com a mesma versão do exp usado para exportar os dados.
· Quando o banco de destino possuir uma versão menor do que a origem, exportar os dados com o exp da versão do destino.
· Se o usuário que exportou os dados tiver direitos de DBA, será necessário importar os dados com um usuário que também tenha direitos de DBA.
· Considere a tabela de caracteres configurada na Origem e no Destino, dependendo da combinação a acentuação e caracteres especiais podem ser perdidos.
· String de conexão com o banco de dados
Da mesma forma como no exp precisamos informar a string de conexão com o banco de dados de destino.
Formato: usuário/senha@instância
· Arquivo de origem
O arquivo de onde serão lidas as informações deve ser especificado no parâmetro file. Formato: file=caminho\arquivo.dmp
· Log da importação
Para registrar as ocorrências da importação das informações utilize o parâmetro log.
Formato: log=caminho\arquivo.log
· Troca de usuário
Caso o usuário de destino dos objetos seja diferente do usuário de origem, precisaremos indicar isto para o importador através de dois parâmetros: fromuser e touser.
Formato: fromuser=usuarioorigem touser=usuariodestino
· Importação do arquivo inteiro
Para importarmos todos os objetos exatamente como foi exportado, basta informar o parâmetro full.
Formato: full=y
· Ignorar erros
Para desprezar os erros de criação dos objetos informe o parâmetro Ignore. Caso este parâmetro não seja informado e alguma tabela que estiver sendo importada, já existir, será gerado um erro e os dados desta tabela não serão incluídos.
Formato: ignore=y
· Importar os dados das tabelas
Caso seja necessário somente importar a estrutura dos objetos informe o parâmetro rows, assim os dados das tabelas não serão inseridos.
Formato: rows=n
· Visualização do conteúdo do arquivo
Para consultar o conteúdo do arquivo de importação.
Formato: show=y
· Seleção de Tabelas
Para selecionar somente algumas tabelas para importar, utilize o parâmetro Table.
Formato: tables=(Tabela1,Tabela2,...,TabelaN)
3. Exemplos de Exportação e Importação
Para estes exemplos será considerado o seguinte ambiente:
Usuário do banco de dados: Exemplo
Senha do banco de dados: Senha123
Instância do Oracle: ORCL
Arquivo a ser gerado/importado: C:\tmp\DadosExemplo.dmp
Se O $ORACLE_HOME/bin estiver no PATH, executa direto no prompt de comando do sistema operacional.
· Exportar todos os objetos do usuário Exemplo:
exp Exemplo/Senha123@ORCL file=c:\tmp\DadosExemplo.dmp
· Exportar somente as tabelas Empresas e Clientes do usuário Exemplo:
exp Exemplo/Senha123@ORCL file=c:\tmp\DadosExemplo.dmp tables=(Empresas,Clientes)
· Importar todos os objetos do usuário Exemplo:
imp Exemplo/Senha123@ORCL file=c:\tmp\DadosExemplo.dmp full=y
· Importar somente as tabelas Empresas e Clientes do usuário Exemplo:
imp Exemplo/Senha123@ORCL file=c:\tmp\DadosExemplo.dmp fromuser=Exemplo tables=(Empresas,Clientes)
· Importar todos os objetos do usuário Exemplo e gravar no usuário Producao:
imp Producao/Senha123@ORCL file=c:\tmp\DadosExemplo.dmp fromuser=Exemplo touser=Producao
Conclusão
Os utilitários “exp” e “imp” são usados com bastante freqüência em ambientes com Oracle, neste artigo foram apresentadas somente as opções mais triviais.
Caso utilize como solução para backup, mantenha as opções tradicionais do Oracle e use somente como um complemento a estes utilitários.
Fonte: http://www.devmedia.com.br/articles/post-6283-Exportacao-de-Dados-no-Oracle.html
Nenhum comentário :
Postar um comentário