Невозможно импортировать файл, созданный data-pump, когда есть таблицы с разделением по ссылке

Мы разрабатываем большой проект с использованием Oracle 11g R2. Наша база данных состоит из более чем 170 таблиц с множеством разделов по ссылкам (функция Oracle 11).

Бывают случаи, что мы хотим портировать нашу базу данных в другую базу данных, поэтому мы создаем файл дампа с помощью data-pump, при экспорте данных все идет нормально, но мы не можем импортировать его в другую базу данных.

При импорте правильных таблиц импортируется нормально, но импортируются таблицы, не относящиеся к разделам по ссылкам.

При создании раздела по ссылочным таблицам внешний ключ (на котором основан раздел) должен быть создан в операторе create table, но кажется, что насос данных создает все внешние ключи в конце скрипта.

Я не могу поверить, что люди Oracle забыли обновить data-pump в Oracle 11g. Кто-нибудь знает, как решить эту проблему?

Обновление 1. Мы используем следующие сценарии импорта и сценариев:

Экспорт:

declare
    h1   NUMBER;
begin
    h1 := dbms_datapump.open (operation => 'EXPORT', job_mode => 'SCHEMA', job_name => 'EXPORT000185', version => 'COMPATIBLE'); 
    dbms_datapump.set_parallel(handle => h1, degree => 1); 
    dbms_datapump.add_file(handle => h1, filename => '910202.LOG', directory => 'DATA_PUMP_DIR', filetype => 3); 
    dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0); 
    dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''PAYESH_ACCOUNTING'',''PAYESH_CORE'',''PAYESH_CRM'',''PAYESH_LIFE'',''PAYESH_SECURITY'')'); 
     dbms_datapump.add_file(handle => h1, filename => '910202_db4.DMP', directory => 'DATA_PUMP_DIR', filetype => 1); 
    dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1); 
    dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC'); 
    dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS'); 
    dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0); 
    dbms_datapump.detach(handle => h1); 
end;

Импорт:

declare
    h1   NUMBER;
begin
    h1 := dbms_datapump.open (operation => 'IMPORT', job_mode => 'SCHEMA', job_name => 'IMPORT000189', version => 'COMPATIBLE'); 
    dbms_datapump.set_parallel(handle => h1, degree => 1); 
    dbms_datapump.add_file(handle => h1, filename => '910228.LOG', directory => 'DATA_PUMP_DIR', filetype => 3); 
    dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0); 
    dbms_datapump.add_file(handle => h1, filename => '910128.DMP', directory => 'DATA_PUMP_DIR', filetype => 1); 
    dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''PAYESH_ACCOUNTING'',''PAYESH_CORE'',''PAYESH_CRM'',''PAYESH_LIFE'',''PAYESH_SECURITY'')'); 
    dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1); 
    dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC'); 
    dbms_datapump.set_parameter(handle => h1, name => 'SKIP_UNUSABLE_INDEXES', value => 0); 
    dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0); 
    dbms_datapump.detach(handle => h1); 
end;

Обновление 2: мы выяснили, что проблема существует только в разделах с внешними ключами, которые являются кросс-схемами.

Итак, вопрос уже существует, есть ли способ экспортировать/импортировать таблицы с межсхемным разделением по схемам вместе?


person Amir Pashazadeh    schedule 21.04.2012    source источник
comment
Вот ответ, которого вы, вероятно, боялись: у меня работает (на 11.2.0.1). Можете ли вы опубликовать полностью воспроизводимый тестовый пример, команды DDL, DML, expdb и impdb и т. д.?   -  person Jon Heller    schedule 22.04.2012
comment
Сейчас полночь и я дома, завтра выложу.   -  person Amir Pashazadeh    schedule 22.04.2012


Ответы (1)


Я смог воспроизвести вашу проблему. Когда я использовал командную строку IMPDB, это дало мне более полезное сообщение об ошибке:

ORA-39083: Object type TABLE:"SCHEMA2"."CHILD_TABLE" failed to create with error:
ORA-00942: table or view does not exist

Если вы посмотрите их на My Oracle Support, вы найдете ошибку 8477142. Проблема предположительно была исправлена ​​в 11.2.0.2.

person Jon Heller    schedule 24.04.2012
comment
Мы используем Oracle 11.2.0.2 и все еще сталкиваемся с той же проблемой. - person Amir Pashazadeh; 27.04.2012
comment
Где я могу найти ошибку оракула 8477142? - person Amir Pashazadeh; 27.04.2012
comment
Вам нужно будет использовать support.oracle.com - person Jon Heller; 28.04.2012
comment
Хотя ваш ответ не помог мне с моей проблемой, но это было своего рода помощью. - person Amir Pashazadeh; 12.08.2012