Команды EXPDP / IMPDP подходят для ежедневной синхронизации схемы?

dba.stackexchange https://dba.stackexchange.com/questions/115075

Вопрос

Я сделал следующие комиссии:

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 - отбросить схему перед импортом.

Если вы не хотите сбрасывать схему по какой-то причине, но замените данные таблиц, необходимы много дополнительных операций.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top