terça-feira, 25 de janeiro de 2011

Exportação de Dados no Oracle

 

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

Related Posts Plugin for WordPress, Blogger...