Команды EXPDP / IMPDP подходят для ежедневной синхронизации схемы?
-
29-09-2020 - |
Вопрос
Я сделал следующие комиссии:
expdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=expdpSCH_%date%.log
.
Он отлично работает, без ошибок.Но когда я использую команду:
impdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=impdpSCH_%date%.log
.
Это дало мне кучу ошибок, которые уже существуют таблицы, последовательности и другие вещи.Поэтому у меня есть вопрос, я могу использовать такой подход, или это неправильно, и я должен использовать что-то еще?
Решение
Проверьте документацию для получения дополнительной информации или типа impdp help=y
.Есть параметр ( Table_Existers_action ), который определяет, если вы хотите перезаписать существующие объекты или если вы хотите добавить.
table_existers_action
Действие, чтобы принять, если импортируемый объект уже существует.
Действительные ключевые слова: Добавить, заменить, [пропустить] и усеченные.
Другие советы
Нет, это не возможный способ:
- .
- Большинство не таблиц объектов уже будут существовать в вашей схеме.Вы уже получаете такие сообщения об ошибках.Импорт не перезаписывает его.
- Вы можете настроить, как экспортировать должен работать, если таблица уже существует, но если есть таблица, на которую ссылается другая таблица, то укориться и заменить, не будет работать.
- Даже если нет внешнего ключа, ссылка на табличные индексы, резко замедляют импорт
- может произойти много других проблем (относительно триггеров, разделов, ссылок на другие таблицы и, возможно, больше)
Так что единственный разумный способ синхронизации схемы с использованием EXPDP / IMPDP - отбросить схему перед импортом.
Если вы не хотите сбрасывать схему по какой-то причине, но замените данные таблиц, необходимы много дополнительных операций.