Pergunta

Eu fiz seguintes comandos:

expdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=expdpSCH_%date%.log

Ele funciona bem, sem erros.Mas quando eu uso o comando:

impdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=impdpSCH_%date%.log

Deu-me o monte de erros que tabelas, sequências e outras coisas que já existem.Então, eu tenho uma pergunta, eu poderia usar tal abordagem ou é errado e que eu deveria usar algo mais?

Foi útil?

Solução

Verifique a documentação para obter mais informações ou tipo impdp help=y.Existe um parâmetro (TABLE_EXISTS_ACTION) que define se você deseja substituir os objetos existentes ou se você deseja acrescentar.

TABLE_EXISTS_ACTION
Ação a ser tomada se importado objeto já existe.
Palavras-chave válidas são:De ACRESCENTAR, SUBSTITUIR, [SKIP] e TRUNCAR.

Outras dicas

Não, esse não é um caminho possível:

  • A maioria dos não-objetos de tabela já existe no seu esquema.Você já tem essas mensagens de erro.A importação não irá substituí-lo.
  • Você pode configurar o modo de exportação deve funcionar se uma tabela já existe, mas se existe uma tabela que s referenciada por outra tabela, em seguida, TRUNCAR e SUBSTITUIR não vai funcionar.
  • Mesmo se não há nenhuma referência de chave estrangeira de uma tabela de índices irá diminuir drasticamente a importação
  • Um monte de outros problemas podem ocorrer (relativos a gatilhos, partições, referências a outras tabelas, e talvez muito mais)

Assim, a única maneira razoável para sincronizar o esquema utilizando o expdp/impdp é soltar o esquema antes de importar.

Se você não quer largar o esquema, por algum motivo, mas substitua os dados das tabelas de um monte de operações adicionais são necessárias.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top