Pular para o conteúdo

ORACLE DATAPUMP : Remapeando de Tablespaces e Schemas

ORACLE DATAPUMP : Remapeando de Tablespaces e Schemas

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.

SQL
- 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;

SQL
- 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:

SQL
- GRANT IMP_FULL_DATABASE to teste;

,4- Após isso basta exportar e depois importar

5- Exportando com usuario teste com Oracle Data Pump:

SQL
- 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):

SQL
- 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:

SQL
- REMAP_TABLESPACE = teste0:teste2, teste1:teste2

Abraço

Bruno Murassaki

Bruno Murassaki

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress