Exp/Imp Oracle 10g

Backup, Recover, Import, Export, Datapump, etc
  

Mensagemem Dom, 02 Fev 2014 4:09 pm

Boa tarde Pessoal,

Eu tenho meu banco de produção, e fiz um exp full do banco. Agora quero importar esse .dmp para um banco de testes, que utilizamos para tal.

Acontece que quando dou o comando para importar (usando usuário system), ele reclama que os usuários e as tablespaces não existem, e pára a importação por ali mesmo.

Alguém pode me dar uma dica, se tenho que passar algum parâmetro no comando IMP para que sejam criadas as tablespaces/usuários em meu banco de testes automaticamente?

Obrigado.
jerry-sc

Mensagemem Seg, 03 Fev 2014 1:19 pm

@jerry-sc

O import (full ou não) não cria os tablespaces, portanto , no seu caso, sugiro que você monte um script SQL dinâmico lendo a visão DBA_TABLESPACES e passando como parâmetro para a package DBMS_METADATA o nome de cada tablespace para extrair o comando DDL deles. Pegue o resultado final dos DDLs e aplique no banco de testes, depois tente novamente fazer o import, ok?

Ahhh, talvez seja necessário fazer algumas alterações no caminho dos datafiles, caso a estrutura de pastas dos 2 Bds não seja a mesma.

[]s
fbifabio
Localização: São Paulo - SP

Fábio Prado
www.fabioprado.net

Mensagemem Seg, 17 Mar 2014 8:49 am

Brother ,ilustrando o que o Brother Fábio Prado falou,segue o script para geração do DDL de todas as tablespaces ,assim como o caminho dos datafiles.

Código: Selecionar todos
[oracle@adriano root]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 17 08:42:00 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

SQL>set heading off;
SQL>set echo off;
SQL>Set pages 999;
SQL>set long 90000;
SQL>select dbms_metadata.get_ddl('TABLESPACE',também.tablespace_name) from dba_tablespaces também;

SQL> select dbms_metadata.get_ddl('TABLESPACE',também.tablespace_name) from dba_tabl                                                                                       espaces também;

DBMS_METADATA.GET_DDL('TABLESPACE',também.TABLESPACE_NAME)
--------------------------------------------------------------------------------

  CREATE TABLESPACE "SYSTEM" DATAFILE
  '/u01/app/oracle/oradata/adriano/syste


  CREATE TABLESPACE "SYSAUX" DATAFILE
  '/u01/app/oracle/oradata/adriano/sysau


  CREATE UNDO TABLESPACE "UNDOTBS1" DATAFILE
  '/u01/app/oracle/oradata/adrian

DBMS_METADATA.GET_DDL('TABLESPACE',também.TABLESPACE_NAME)
--------------------------------------------------------------------------------


  CREATE TEMPORARY TABLESPACE "TEMP" TEMPFILE
  '/u01/app/oracle/oradata/adria


  CREATE TABLESPACE "USERS" DATAFILE
  '/u01/app/oracle/oradata/adriano/users0




É isso ai ,boa sorte !!!
adrianoturbo
Localização: Brasília

Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Mensagemem Seg, 17 Mar 2014 8:54 am

Corrigindo :apareceu um também no nada no meu comando,segue corrigido.

Código: Selecionar todos
select dbms_metadata.get_ddl('TABLESPACE',t.tablespace_name) from dba_tablespaces t;
adrianoturbo
Localização: Brasília

Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Mensagemem Seg, 17 Mar 2014 5:32 pm

Código: Selecionar todos
[oracle@adriano root]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 17 08:42:00 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

SQL>set heading off;
SQL>set echo off;
SQL>Set pages 999;
SQL>set long 90000;
SQL>select dbms_metadata.get_ddl('TABLESPACE',t.tablespace_name) from dba_tablespaces t;

DBMS_METADATA.GET_DDL('TABLESPACE',t.TABLESPACE_NAME)
--------------------------------------------------------------------------------

  CREATE TABLESPACE "SYSTEM" DATAFILE
  '/u01/app/oracle/oradata/adriano/syste


  CREATE TABLESPACE "SYSAUX" DATAFILE
  '/u01/app/oracle/oradata/adriano/sysau


  CREATE UNDO TABLESPACE "UNDOTBS1" DATAFILE
  '/u01/app/oracle/oradata/adrian

DBMS_METADATA.GET_DDL('TABLESPACE',também.TABLESPACE_NAME)
--------------------------------------------------------------------------------


  CREATE TEMPORARY TABLESPACE "TEMP" TEMPFILE
  '/u01/app/oracle/oradata/adria


  CREATE TABLESPACE "USERS" DATAFILE
  '/u01/app/oracle/oradata/adriano/users0
adrianoturbo
Localização: Brasília

Adriano Alves
---Para cada problema dificil existe uma solução simples.----


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


      Voltar para DBA Backup / Recover

      Quem está online

      Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes