impdp 导入数据报ORA-39002,ORA-39070,ORA-39002, ORA-39087

出现问题



[oracle@dbServer ~]$ impdp userbook/userBook@orcl directory=dump_dir dumpfile=book.dmp schemas=userbook
报以下错误:
ORA-39002: invalid operation 
ORA-39070: Unable to open the log file. 
ORA-39087: directory name DPDATA1 is invalid

查看问题信息 

[oracle@dbServer ~]$ oerr ORA 39087
39087, 00000, "directory name %s is invalid"
// *Cause:  A corresponding directory object does not exist.
// *Action: Correct the directory object parameter, or create a corresponding
//          directory object with the CREATE DIRECTORY command.
[oracle@dbServer ~]$ oerr ORA 39070
39070, 00000, "Unable to open the log file."
// *Cause:  Errors were detecting while opening the log file.  Subsequent
//          messages will detail the problems.
// *Action: Fix the problems outlined in the secondary messages.

下面是问题分析解决的思路: 

1.首先,检查directory是否已创建

select * from dba_directories;

impdp 导入数据报ORA-39002,ORA-39070,ORA-39002, ORA-39087

结果是directory已经创建,这里没有问题。

2.然后,检查Linux服务器上是否已创建目录:

[oracle@hellooracle ~]$ ll /data/dump/
total 97780
-rw-r----- 1 oracle dba 323584 Nov 1 07:50 DDQNSCHEMA.DMP
-rw-r--r-- 1 oracle dba 331776 Jan 17 21:24 book.dmp
-rw-r--r-- 1 oracle dba 1839 Nov 1 07:50 export.log
-rw-r----- 1 oracle dba 98529280 Oct 18 21:05 full.dmp
-rw-r--r-- 1 oracle dba 2248 Jan 17 21:29 import.log
-rw-r----- 1 oracle dba 425984 Oct 18 20:45 tablespacewt.dmp
-rw-r----- 1 oracle dba 348160 Oct 18 19:02 wtschema.dmp
-rw-r----- 1 oracle dba 159744 Oct 18 19:12 wttab.dmp

显然,目录已经创建。

3.检查是否未赋予directory的读写权限,

SELECT * FROM all_tab_privs WHERE table_name ='DUMP_DIR';

执行赋权限语句:

grant read,write on directory dump_dir to public;

 再次执行导入语句进行验证:

[oracle@dbServer ~]$ impdp userbook/userBook@orcl directory=dump_dir dumpfile=book.dmp schemas=userbook

问题顺利解决,数据成功导入。

参考:http://blog.itpub.net/31394774/viewspace-2216742/

上一篇:基本的dos命令


下一篇:DOS命令