Arquivo para ‘Migração de Dados’ Categoria

Original Utilitário Exp/Imp - Exportando e Importando Dados por Tabelas

sexta-feira, maio 15th, 2009

Olá Pessoal

Hoje estarei postando um artigo de Export e Import por Tabelas, esse utilitário é o nosso velho amigo Exp/Imp convencional utilizando client/side.

É muito usado para exportar apenas algumas tabelas do Schema do Banco de Dados.

Segue abaixo exemplos de como utilizar Exp e Imp por Tabelas:

Comando Export por Tabelas: - Com esse comando filtraremos as tabelas, escolhendo apenas duas tabelas. Exemplo: NOTAFISCAL e CONTARECEBER

————————————————————————————————————–

Comando Export por Tabelas:

Exp usuario/senha@stringdeconexao file=teste.dmp log=teste.log feedback=2000 statistics=none buffer=64000 Tables=(NOTAFISCAL, CONTARECEBER)

————————————————————————————————————–

Como já escolhemos as tabelas exportadas e incluimos no nosso dump, basta apenas importar normalmente.

Com esse comando abaixo importaremos apenas as tabelas que exportamos no dump.

————————————————————————————————————–

Comando Import por Tabelas(Considerando que o dump ja contém apenas as tabelas que deseja importar):

Imp system/senha@stringdeconexao file=teste.dmp log=teste.log FROMUSER=usuario_origem TOUSER=usuario_destino feedback=2000 statistics=none buffer=64000

————————————————————————————————————–

(Obs: Muita atenção se caso utilizar o usuario system para importação, pois se caso esquecer dos parâmetros FROMUSER e TOUSER, os objetos serão importados no Schema System. Recomendo criar um usuario com privilégio para importação.)

Abraço

Bruno Murassaki

Original Utilitário Exp/Imp - Exportando e Importando Dados por Schema(Usuário)

quinta-feira, maio 14th, 2009

Olá Pessoal

Hoje estarei postando um artigo de Export e Import por Schema, esse utilitário é o nosso velho amigo Exp/Imp convencional utilizando client/side.

É muito útil para migração dos dados de um schema de um Banco de Dados para outro.

Este tipo de procedimento Export e Import é rotineiro na vida de um DBA, pois na maioria das vezes é necessário atualizar um Schema do Banco de Dados de Produção para o Banco de Dados de Teste. Para que a equipe de desenvolvimento desenvolva em uma base real, próxima da Base de Produção.

Pode ser também utilizado como rotina de Backup Lógico(Export)

Segue abaixo exemplos de como utilizar Exp e Imp por Schema:

———————————————————————————————————-

Comando Export por Schema(Usuario):

Exp usuario/senha@stringdeconexao file=teste.dmp log=teste.log feedback=2000 statistics=none buffer=64000

———————————————————————————————————-

Comando Import por Schema(Usuario):

Imp system/senha@stringdeconexao file=teste.dmp log=teste.log FROMUSER=user_origem TOUSER=user_destino feedback=2000 statistics=none buffer=64000

———————————————————————————————————-

(Obs: Muita atenção se caso utilizar o usuario system para importação, pois se caso esquecer dos parâmetros FROMUSER e TOUSER, os objetos serão importados no Schema System.Recomendo criar um usuario com privilégio para importação.)

Abraço

Bruno Murassaki

ORACLE DATAPUMP : Remapeando de Tablespaces e Schemas

segunda-feira, abril 6th, 2009

Olá Pessoal,

O assunto que iremos abordar hoje é uma tecnologia muito interessante que a Oracle disponibilizou a partir do Oracle 10g, chamado Oracle Data Pump.
Oracle DataPump é uma tecnologia avançada do utilitário tradicional EXP e IMP o qual conhecemos de releases anteriores. Vejamos algumas diferenças entre DataPump e Utilitário Exp/Imp:

DATA PUMP: Utiliza Server-Side

Utilitário EXP/IMP: Utiliza Client-Side.

————————————————————————————-

Vantagens do Oracle DATAPUMP:

• Seleção de Dados e Objetos de granulidades Fina.

• Especificação Explicita da Versão do Banco de Dados.

• Execução em Paralelo.

• Avaliação do espaço de consumo do export Job.

• Modo de Rede em um Ambiente Distribuído.

• Capacidade de Remapeamento durante importação(import).

• Amostra de Dados e Compressão de Metadados.

—————————————————————————————

Sabe quando necessitamos migrar um schema que está na Tablespace teste0 e gostaria que este schema fosse migrado para um outro Banco de Dados na Tablespace teste2. Pois é, ai que tá, como podemos fazer isso?

Uma das Soluções seria a utilização do Oracle Datapump Utilizando Remapeamento de Tablespaces e Schemas.

Faremos um exemplo simples utilizando Oracle Datapump Remapeamento Tablespaces e Schemas, migrando Dados de um Schema para outro com DATAPUMP.

Deve se conectar com usuário ORACLE ou usuario que Instalou o Oracle10g caso seja Windows.

1- Primeiro passo precisamos definir o diretório onde iremos utilizar o Oracle Data Pump. No nosso caso definimos o Diretório (/oracle/dump) o qual o aliás será dump.

Com isso iremos criar o Diretório logicamente no qual irá se chamar ‘dump’.

Conectar com usuário ORACLE no SQLPLUS com Usuário SYS.

- CREATE DIRECTORY dump AS ‘/oracle/dump/’;

2- Após criar o Diretório precisamos conceder os privilégios de leitura e gravação. Em nosso exemplo iremos disponibilizar este diretório para todos os usuários do Banco de Dados concedendo o privilégio para o schema Public;

- GRANT read, write ON DIRECTORY dump TO PUBLIC;

3- Iremos conceder o Privilégio IMP_FULL_DATABASE para o usuário teste que irá Importar:

- GRANT IMP_FULL_DATABASE to teste;

4- Após isso basta exportar e depois importar

5- Exportando com usuario teste com Oracle Data Pump:
- Expdp teste/teste directory=dump dumpfile=teste.dmp logfile=teste.log

6- Importando com usuario TESTE no Oracle Data Pump, remapeando por schemas(schema TESTE para o TESTE2) e remapeando por Tablespaces(Tablespace TESTE para o TESTE2):
- Impdp teste/teste directory=dump dumpfile=teste.dmp logfile=testeimp.log remap_schema=teste:teste2 remap_tablespace=teste:teste2

( Obs: Caso queira remapear mais de uma tablespace, utilizem o seguinte parâmetro setado abaixo:

- REMAP_TABLESPACE = teste0:teste2, teste1:teste2

Abraço

Bruno Murassaki