Oracle impdp выбрасывает ошибку ORA-39088 - PullRequest
4 голосов
/ 13 февраля 2012

Я пытаюсь импортировать данные из файла дампа, созданного утилитой обработки данных Oracle 10g. Команда, которую я выдаю, -

impdp \ "имя пользователя / пароль @ DB как sysdba \" remap_schema = SRC_SCHEMA: TARGET_SCHEMA remap_tablespace = source_tablespace: target_tablespace DUMPFILE = db.dmp

Я получаю следующее сообщение об ошибке:

ORA - 39001: Invalid argument value
ORA - 39000: Bad dump file spcification
ORA - 39088: file name cannot contain a path specification

В чем причина этой ошибки?

1 Ответ

8 голосов
/ 13 февраля 2012

С документация :

ORA-39088: имя файла не может содержать спецификацию пути Причина: Имя файла дампа, файла журнала или файла sql содержит спецификацию пути. Действие: Используйте имя объекта каталога, чтобы указать, где должен храниться файл.

Это говорит о том, что параметр, который вы указали как DUMPFILE=db.dmp, действительно похож наDUMPFILE=C:\some\dir\path\db.dmp, что запрещено.Вы должны использовать каталог, который распознается базой данных, и указать его с помощью параметра DIRECTORY.


Как отмечает @ruffin из этой ссылки на параметр каталога, вы можете поместитьфайл дампа в каталоге DATA_PUMP_DIR по умолчанию, который можно найти в представлении dba_directories или, если у вас есть разрешение на использование этого объекта, в представлении all_directories.Пользователь, которого вы импортируете как, должен получить права на чтение и запись, чтобы вы могли его использовать.Вам также необходимо иметь возможность переместить файл дампа в каталог операционной системы, поэтому там тоже могут возникнуть проблемы с разрешениями.

Если у вас нет подходящего объекта каталога, для которого у вас есть права доступа к базе данных иДоступ к операционной системе, вам нужно создать его и предоставить подходящие привилегии.Это должен сделать кто-то с соответствующими привилегиями, обычно как SYS:

create directory my_data_pump_dir as 'C:\some\dir\path';
grant read, write on directory my_data_pump_dir to <username>;

Затем импорт изменяется так:

... DUMPFILE=db.dmp DIRECTORY=my_data_pump_dir

Обратите внимание, что каталог операционной системыдолжен быть доступен для учетной записи пользователя Oracle (кто бы ни выполнял процессы базы данных, pmon и т. д.) на сервере базы данных.Вы не можете импортировать в удаленную базу данных, используя локальный файл, если локальный каталог каким-либо образом не смонтирован на удаленном сервере.Старая команда imp была клиентским приложением, которое часто выполнялось на сервере, но не обязательно;impdp - приложение на стороне сервера.

...