São expdp/impdp comandos apropriados para o diário esquema de sincronização?
-
29-09-2020 - |
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?
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.