Импорт выборочных данных с использованием ImpDP - PullRequest
6 голосов
/ 26 марта 2009

У меня есть целая БД, которая будет импортирована как собственная дамп. Я хочу исключить данные из определенных таблиц (в основном потому, что они огромны по размеру и бесполезны). Я не могу полностью исключить эти таблицы, так как мне нужен сам по себе объект таблицы (за исключением данных), и мне придется заново создавать их в моей схеме, если я это сделаю. Кроме того, в отсутствие этих табличных объектов различные другие внешние ограничения, определенные в других таблицах, также не будут импортированы и их необходимо будет переопределить. Поэтому мне нужно исключить только данные из определенных таблиц. ,

Есть ли набор параметров для impdp, который может помочь мне сделать это?

Ответы [ 5 ]

9 голосов
/ 26 марта 2009

Я бы сделал два прогона: первый, я бы импортировал только метаданные:

impdp ... CONTENT=METADATA_ONLY

Второй будет включать данные только для интересующих меня таблиц:

impdp ... CONTENT=DATA_ONLY TABLES=table1,table2...

8 голосов
/ 31 марта 2009

Определенно сделайте 2 пробега. Один для создания всех объектов таблицы, но вместо использования таблиц во втором запуске impdp используйте исключение

impdp ... Content=data_only exclude=TABLE:"IN ('table1', 'table2')"

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

1 голос
/ 11 августа 2014

Если размер таблицы велик для экспорта при экспорте, вы можете использовать параметр «SAMPLE» в команде expdp, чтобы получить экспорт таблицы для любого требуемого процента ....

$ expdp tables=T100test DIRECTORY=expimp1 DUMPFILE=test12.dmp SAMPLE = 10;

Эта команда экспортирует только 10% данных таблицы T100test.

1 голос
/ 11 января 2013

Синтаксис:

EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause]
INCLUDE=[object_type]:[name_clause],[object_type]:[name_clause]

Примеры использования оператора:

   EXCLUDE=SEQUENCE
or EXCLUDE=TABLE:"IN ('EMP','DEPT')"
or EXCLUDE=INDEX:"= 'MY_INDX'"
or INCLUDE=PROCEDURE:"LIKE 'MY_PROC_%'"
or INCLUDE=TABLE:"> 'E'"

Параметр также можно сохранить в файле параметров, например: exp.par

DIRECTORY = my_dir
DUMPFILE = exp_tab.dmp
LOGFILE = exp_tab.log
SCHEMAS = scott
INCLUDE = TABLE:"IN ('EMP', 'DEPT')"
0 голосов
/ 29 августа 2018

Кажется, что вы можете исключить напрямую при импорте, используя параметр запроса impdp

impdp [...] QUERY='TABLE_NAME:"WHERE rownum = 0"'

cf: community.oracle.com

...