Назад | Перейти на главную страницу

как импортировать всю базу данных и заменить текущие данные?

У меня есть две базы данных, говорит A и B. Они одинаковы, ожидайте, что записи данных самые новые или старые. Я хочу перейти от самого нового (A) и чертенка к старому (B).

когда я импортирую в старый с помощью следующей команды

imp username / password file = xxx.dmp fromuser = Auser touser = Buser

это не будет фактически импортировано, поскольку у B уже есть все таблицы.

Итак, кто-нибудь знает, есть ли команда для импорта и замены текущей БД. Спасибо

Кстати, я использую Oracle

Или, если вы можете себе позволить, удалите нужные таблицы из B и воссоздайте их с помощью import или impdp. Обычно мы отбрасываем всю схему (отбрасываем каскад UUUU пользователя), а затем делаем новый импорт, например, когда мы «обновляем» базу данных тестирования / разработки из рабочей среды.

Импорт предназначен для загрузки целых схем, объектов и данных. Хотя есть некоторая гибкость - загружайте отдельные таблицы, просто загружайте данные - это не корректно обрабатывает существование таблиц с данными в целевой схеме. Это особенно проблема, если старые данные в целевой схеме содержат записи, которые были обновлены или удалены в более новой исходной схеме.

Если вы используете Oracle 10g или выше, решением является использование Data Pump. Эта утилита имеет гораздо более мощные функции, включая возможность замены существующих таблиц или данных в существующих таблицах в целевой схеме данными из исходной схемы. Узнать больше.

Если вы используете более раннюю версию базы данных, есть несколько обходных путей. Узнать больше. Но вам, возможно, придется отключить все ограничения и исправить данные в ходе последующей обработки.

Просто используйте Datapump (expdp / impdp вместо exp / imp) и укажите TABLE_EXISTS_ACTION = TRUNCATE (или ЗАМЕНИТЕ, в зависимости от ситуации).