Primeiro, observe-se que :

=> o impdp só cria as tablespaces no destino se tiver sido feito um export de 
database FULL pelo expdp

=> essa criação feita pela importação VAI segir exatamente os mesmos PATHs / 
discos / filesystems / whatever que existiam no servidor onde foi feito o 
export, com EXATAMENTE A MESMA sintaxe que foi usada no servidor-origem : CASO 
(é algo comum) os discos / filesystems/nomes/sintaxes de nomenclatura/etc no 
servidor-destino forem DIFERENTES das do servidor-origem, a recriação VAI FALHAR

Isso posto, as suas respostas :

"Qual a forma de importar um DUMP (utilizando impdp), sem eu saber a 
nomenclatura das tablespaces origem para se recriados no ambiente destino?"

SE for importação de um export FULL, caso vc tenha a mesma estrutura (ie, 
pastas/discos/filesystems/etc) no destino OK, não precisa fazer nada

Já CASO não seja um export full que vc está importando :

a. se vc não exigir que os objetos sejam criados nas mesmas tablespaces, Sim vc 
setar a tablespace default MAS para que ela seja usada vc TEM que remover os 
atributos do segmento na hora de importar, veja o parâmetro TRANSFORM no impdp 
para eliminar na importação atreibutos de segmento... Uma variação desta 
técnica é criar as tablespaces que vc quer e usar o parâmetro REMAP_TABLESPACE 
para "mudar" as tablespaces dos objetos - o senão é que vc TEM que ter a lista 
das tablespaces a mudar

b. se vc não puder remover os atributos do segmento  ou EXIGIR que  objetos a 
importar mantenham as mesmas tablespaces de origem mas vc não tem a estrutura 
de pastas/filesystems/etc idêntica à origem, vc VAI ter que obter a lista de 
tablespaces para depois renomear os datafiles : para isso, se vc não tem acesso 
ao banco-orige, vc pode usar o parâmetro SQLFILE para obter os CREATEs dos 
objetos e depois num editor de texto (ou via grep/utilitários externos) extrair 
os nomes das tablespaces.

[]s

  Chiappa

Responder a