когда я запускаю команды impdp

ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-31640: unable to open dump file "/nav_db_dir/cmODF_odf_nav_db/ashsahu/gabq418/RDF_ANT_181G0/RDF_WTA_181G0_ANT.dmp" for read
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

Ниже приведена моя команда. Я создал каталог DirectoryName Path directoryObject /import/datatest

impdp username/password@sid table_exists_action=REPLACE tables=SCHMEA.TABLE1,SCHMEA.TABLE2, SCHMEA.TABLE3, SCHMEA.TABLE4, SCHMEA.TABLE5 DIRECTORY=directoryObject remap_schema=SCHMEA:username remap_tablespace=SCHMEA_DA:username_DA dumpfile=file.dmp exclude=grant nologfile=y 

И я дал полный доступ к этому каталогу, используя chmod 777 /import/datatest (rwxrwxrwx) –


person Ashish Sahu    schedule 11.04.2019    source источник
comment
Что непонятного в Нет такого файла или каталога?   -  person a_horse_with_no_name    schedule 11.04.2019


Ответы (2)


Вы должны были опубликовать всю команду IMPDP.

Я подозреваю, что вы неправильно поняли/использовали параметр DIRECTORY.

Это объект Oracle, созданный SYS, и является (вообще говоря) всего лишь "указателем" на физический каталог на жестком диске сервера базы данных. После его создания SYS должен дать вам (то есть пользователю, выполняющему команду IMPDP) read (и, возможно, write) привилегий в этом каталоге.

Тогда вы бы использовали его как

impdp scott/tiger@orcl directory=IMP_DIR dumpfile=mydump.dmp logfile=imp.log
      -----                      -------
      is granted READ privilege  |
                                 directory object

Наконец, mydump.dmp (или как там его имя) должен находиться в этом каталоге на сервере.

person Littlefoot    schedule 11.04.2019
comment
Ниже приведена моя команда. Я создал каталог DirectoryName Path directoryObject /import/datatest impdp username/password@sid table_exists_action=REPLACE table=SCHMEA.TABLE1,SCHMEA.TABLE2, SCHMEA.TABLE3, SCHMEA.TABLE4, SCHMEA.TABLE5 DIRECTORY=directoryObject remap_schema= SCHMEA:имя_пользователя remap_tablespace=SCHMEA_DA:username_DA dumpfile=file.dmp exclude=grant nologfile=y; даже я дал полный доступ к этому каталогу, используя chmod 777 /import/datatest (rwxrwxrwx) - person Ashish Sahu; 11.04.2019
comment
Извините, это трудно читать. Вы бы предпочли опубликовать его - отформатированное - редактируя исходное сообщение, которое вы разместили полдня назад. - person Littlefoot; 11.04.2019
comment
impdp имя пользователя/пароль@sid table_exists_action=ЗАМЕНИТЬ таблицы=SCHMEA.TABLE1,SCHMEA.TABLE2, SCHMEA.TABLE3, SCHMEA.TABLE4, SCHMEA.TABLE5 DIRECTORY=directoryObject remap_schema=SCHMEA:имя пользователя remap_tablespace=SCHMEA_DA:username_DA dumpfile=file.dmp exclude= предоставить nologfile=y; - person Ashish Sahu; 11.04.2019
comment
я создал каталог DirectoryName Path directoryObject /import/datatest - person Ashish Sahu; 11.04.2019
comment
даже я дал полный доступ к этому каталогу, используя chmod 777 /import/datatest - person Ashish Sahu; 11.04.2019
comment
я могу увидеть свой каталог, используя приведенный ниже запрос select * from dba_directories; - person Ashish Sahu; 11.04.2019
comment
Речь идет не о привилегиях операционной системы, а о привилегиях уровня базы данных. SYS должен grant read, write on directory directoryName to username - person Littlefoot; 11.04.2019
comment
я запускаю эту команду на клиенте оракула, и путь также находится на машине с Linux, где установлен клиент оракула - person Ashish Sahu; 11.04.2019
comment
я могу видеть список привилегий db EXECUTE, READ, READ, READ, READ, WRITE, WRITE, WRITE, WRITE для этого каталога - person Ashish Sahu; 11.04.2019
comment
Убедитесь также, что имя пользователя, под которым работает Oracle, скажем, oracle, имеет доступ как к каталогу /import, так и к каталогу /import/datatest. Убедитесь, что пользователь может перейти в /import/datatest - person Adam vonNieda; 12.04.2019
comment
Также вы сказали, что путь находится на машине с Linux, где находится клиент. Он должен быть на машине, на которой работает база данных, именно там должен быть файл дампа. - person Adam vonNieda; 12.04.2019
comment
Привет, Адам, я дал разрешение на доступ для пользователя оракула, такого как chown oracle: oracle /import/datatest, но для этого все еще нет успеха - person Ashish Sahu; 12.04.2019
comment
Привет, Адам, больше ничего, я использую клиент оракула, который находится на другом сервере Linux, и я пытался дать полное разрешение для пользователя оракула, тогда он показывал chown: неверный пользователь: оракул: оракул - person Ashish Sahu; 12.04.2019
comment
ORA-39002: недопустимая операция ORA-39070: невозможно открыть файл журнала. ORA-29283: недопустимая операция с файлом ORA-06512: в SYS.UTL_FILE, строка 536 ORA-29283: недопустимая операция с файлом Теперь я столкнулся с этой проблемой, я дал разрешение на полный доступ - person Ashish Sahu; 12.04.2019

Чтобы добавить к тому, что сказал @Littlefoot

Пример:

Create directory datapump as '/import/datatest';
Grant read,write on directory datapump to scott;

И тогда файл дампа должен находиться в @/import/datatest

Также убедитесь, что имя пользователя, под которым работает Oracle, скажем, «oracle», имеет доступ как к каталогу «/import», так и к каталогу «/import/datatest». Убедитесь, что пользователь может "перейти" в /import/datatest

person Adam vonNieda    schedule 11.04.2019