Правильный синтаксис для Oracle IMPDP REMAP_DIRECTORY - PullRequest
0 голосов
/ 23 февраля 2019

Я устанавливаю Oracle XE 18c на платформе Windows 10.Я следую инструкциям в https://docs.oracle.com/en/database/oracle/oracle-database/18/xeinw/exporting-and-importing-data-oracle-database-xe-11.2-and-18c.html#GUID-6C55327E-2701-426B-A55A-3A576DC78FCE Я использую раздел 9.2 - Экспорт и импорт данных для пользователей Oracle Application Express.Я экспортировал данные из моей исходной системы, и она успешно завершена.Я перенес файл дампа (DB11G.dmp) в мою новую систему в папке C: \ SS_BACKUPS.В исходной исходной системе файлы расположены в: C: \ oraclexe \ app \ oracle \ oradata \ XE. В новой целевой системе (на другом оборудовании) файлы будут находиться в: C: \ app \ product \ 18.0.0 \.oradata \ XE В новой целевой системе я выполнил следующие команды в SQLPLUS:

sqlplus SYS AS SYSDBA
SQL> CREATE DIRECTORY BACKUP_DIR AS 'C:\SS_BACKUPS';
SQL> GRANT READ, WRITE ON DIRECTORY BACKUP_DIR TO SYSTEM;
SQL> GRANT IMP_FULL_DATABASE to SYSTEM;

Затем из привилегированного приглашения DOS я выполнил команду:

impdp system/(my_password)@localhost/xepdb1 full=Y REMAP_DIRECTORY='C:\oraclexe\app\oracle\oradata\XE\':'C:\app\product\18.0.0\oradata\XE\' directory=BACKUP_DIR dumpfile=DB11G.dmp logfile=impdpDB11G.log

Когда я выполню это,Я получаю сообщение об ошибке: UDI-00014: invalid value for parameter, 'remap_directory',

Я понимаю структуру REMAP_DIRECTORY как SOURCE: TARGET Любая идея, почему я получаю эту ошибку?Спасибо за просмотр.

1 Ответ

0 голосов
/ 23 февраля 2019

Из документации у вас должна быть роль DATAPUMP_IMP_FULL_DATABASE, чтобы использовать опцию REMAP_DIRECTORY.

Обновление 1

Согласно документации здесь:

https://docs.oracle.com/en/database/oracle/oracle-database/18/sutil/datapump-import-utility.html#GUID-5DA84A72-B71C-4491-9DD8-7075D9A4B04F

В зависимости от вашей операционной системы, экранирующие символы могут потребоваться, если вы используете кавычки при указании значения для этого параметра.Oracle рекомендует поместить этот параметр в файл параметров, что может уменьшить количество управляющих символов, которое в противном случае потребовалось бы в командной строке.

Итак, он говорит, что попробуйте поместить параметр REMAP_DIRECTORY вВместо этого файл параметров, чтобы устранить любые неопределенности в отношении экранирования путей и т. д.

Я думаю, что в вашем случае может оказаться, что двоеточие в путях, возможно, нуждается в экранировании или сокрытии от оболочки.

...