AWS RDS Oracle Ошибка ввода данных ORA-39001: неверное значение аргумента - PullRequest
1 голос
/ 04 марта 2020

Я хочу импортировать мой файл дампа из моего локального в AWS. Я загрузил мой pdv.dpdm файл в мое хранилище S3

expdp sys/pass schemas=PDV dumpfile=pdv.dpdm NOLOGFILE=YES directory=TEST_DIR

Я успешно загрузил этот файл в oracle DATA_PUMP_DIR с помощью команды rdsadmin.rdsadmin_s3_tasks.download_from_s3. Когда я перечисляю файлы в этом каталоге, Я получил это. Поэтому я думаю, что проблема не в сбое при перемещении данных.

select * from table
(rdsadmin.rds_file_util.listdir(p_directory => 'DATA_PUMP_DIR'));

datapump/   directory   4096    2020-03-04 06:49:40
pdv2.log    file    28411   2020-03-04 06:49:40
29012020.DMP    file    825552896   2020-03-03 09:36:59
pdv2.dpdm   file    685617152   2020-03-04 06:49:40
pdv.dpdm    file    685613056   2020-03-04 06:49:27

Когда я начал импортировать этот файл с DBMS_DATAPUMP.ADD_FILE, в этой строке я получил ошибку.

DECLARE
hdnl NUMBER;
BEGIN
hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=> NULL, version => 12);
DBMS_DATAPUMP.ADD_FILE( 
    handle => hdnl, 
    filename => 'pdv.dpdm', 
    directory => 'DATA_PUMP_DIR',
    filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE
);
DBMS_DATAPUMP.START_JOB(hdnl);
END;

Error :

SQL Error [39001] [99999]: ORA-39001: invalid argument value
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4087
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4338
ORA-06512: at line 6

Кажется, я что-то упустил, может быть, настроить в AWS или что. Я выполнил поиск пары ответов, но это не решает мою проблему. Не могли бы вы помочь мне с этим? Я больше не знаю, что мне делать. Спасибо

1 Ответ

1 голос
/ 04 марта 2020

Вы ошибаетесь с версией импорта.

hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=> NULL, version => 12);

версия => '12.0.0'

Oracle Документация

COMPATIBLE - (по умолчанию) версия метаданных соответствует уровню совместимости базы данных и уровню выпуска совместимости для функции (как указано в представлении V $ COMPATIBILITY). Совместимость базы данных должна быть установлена ​​на уровне 9.2 или выше.

LATEST - версия метаданных соответствует версии базы данных.

Указанная c версия базы данных, например, '11 .0.0 '.

Укажите значение 12, чтобы разрешить экспорт всех существующих функций, компонентов и параметров базы данных из Oracle База данных 11g, выпуск 2 (11.2.0.3) или новее в Oracle База данных 12 *. 1036 * Выпуск 1 (12.1) (база данных контейнеров с несколькими арендаторами (CDB) или не-CDB).

Вы должны экспортировать как пользователь не-SYS!

grant read, write on directory TEST_DIR to PDV;

expdp PDV/password schemas=PDV dumpfile=pdv.dpdm NOLOGFILE=YES directory=TEST_DIR

Oracle Документация

Примечание: Не запускайте экспорт как SYSDBA, кроме как по запросу Oracle технической поддержки. SYSDBA используется внутри и имеет специализированные функции; его поведение не такое, как для обычных пользователей.

...