Импортировать файл дампа в другую базу данных со стандартными схемами

У меня есть следующая команда для импорта файла дампа в другую базу данных (DB_B) с другой схемой. Импорт данных Oracle Data Pump

impdp SYSTEM/PASSWORD DUMPFILE=dpump_dir1:expfull.dmp FULL=y LOGFILE=dpump_dir2:full_imp.log

expfull.dmp из DB_A содержит много разных ролей, пользователей, табличных пространств и других, в то время как DB_B - это просто базовая БД, где я хотел импортировать свой файл expfull.dmp, он содержит только пользователей по умолчанию, роли и т.д. во время создания БД. Обычные шаги, которые я делаю для получения точного соответствия DB_A, - это создание каждого из этих пользователей и таблеток при каждом импорте базы данных. Есть ли команда/флаг, где он будет просто автоматически импортировать все содержимое expfull.dmp в DB_B, не пройдя все обычные шаги, которые я просто описываю? Я проверил на сайте google и oracle, что remap_schema каким-то образом это сделает. Но я не уверен, как это работает, или делает то, что я хочу. Любые советы/помощь приветствуются заранее.

1 ответ

Я не думаю, что есть способ сделать это автоматически, как в imp/exp, используя full = y, который импортирует все, поэтому вы должны переназначить табличные пространства от одного к другому, указав, куда вы хотите, чтобы они пошли. Они не должны быть похожими на то, что:

impdp scott/tiger DIRECTORY=DBEXPDIR DUMPFILE=DBEXPDIR:export.dpdmp LOGFILE=DBEXPLOG:daily_import.dplog CONTENT=ALL TABLE_EXISTS_ACTION=TRUNCATE REMAP_SCHEMA=PRODDB:PROD_COPY REMAP_TABLESPACE=INDEX:INDEX_DEV REMAP_TABLESPACE=DATA:DATA_DEV REMAP_TABLESPACE=DATA2:DATA_DEV REMAP_TABLESPACE=DATA3:DATA_DEV

licensed under cc by-sa 3.0 with attribution.