¿Son los comandos EXPDP / IMPDP apropiados para la sincronización del esquema diario?
-
29-09-2020 - |
Pregunta
He hecho después de Comands:
expdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=expdpSCH_%date%.log
Se ejecuta genial, sin errores.Pero cuando uso el comando:
impdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=impdpSCH_%date%.log
Me dio un montón de errores que ya existen mesas, secuencias y otras cosas.Así que tengo una pregunta, ¿podría usar tal enfoque o está mal y debería usar algo más?
Solución
Revise la documentación de más información o escriba impdp help=y
.Hay un parámetro ( table_exists_action ) que define si desea sobrescribir los objetos existentes o si desea agregar.
table_exists_action
Acción a tomar si el objeto importado ya existe.
Las palabras clave válidas son: Anexar, reemplazar, [Skip] y truncar.
Otros consejos
No, eso no es una forma posible:
- La mayoría de los objetos que no son de mesa ya existirán en su esquema.Ya obtienes tales mensajes de error.La importación no lo sobrescribirá.
- Puede configurar cómo debería funcionar la exportación si ya existe una tabla, pero si hay una tabla que es referenciada por otra tabla, luego luego truncar y reemplazar no funcionará.
- Incluso si no hay una referencia de clave extranjera a un índice de tabla reducirá la importación dramáticamente
- puede ocurrir muchos otros problemas (con respecto a los desencadenantes, particiones, referencias a otras tablas y tal vez más)
Por lo tanto, la única forma razonable de sincronizar el esquema utilizando EXPDP / IMPDP es dejar caer el esquema antes de importar.
Si no desea eliminar el esquema por alguna razón, pero reemplace los datos de las tablas, son necesarias muchas operaciones adicionales.