当我运行impdp命令时

时间:2019-04-11 08:07:19

标签: oracle 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路径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) –

授予了对该目录的完全访问权限

2 个答案:

答案 0 :(得分:1)

您应该发布了整个IMPDP命令。

我怀疑您误解/误用了DIRECTORY参数。

这是一个由SYS创建的Oracle对象,并且(通常)仅是数据库服务器硬盘上物理目录的“指针”。创建后,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(或其名称)必须位于服务器上的该目录中。

答案 1 :(得分:0)

添加到@Littlefoot所说的内容

示例:

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

然后转储文件应位于@ / import / datatest

还要确保运行Oracle的用户名(例如“ oracle”)可以访问“ / import”目录和“ / import / datatest”目录。确保用户可以“ cd”进入/ import / datatest