导入Oracle备份的错误

时间:2017-02-21 17:20:57

标签: oracle ubuntu import oracle12c

我创建了一个目录:

SQL> create or replace directory dir as '/home/oracle12c/Desktop/latest_exp.dmp'; 我正在尝试运行导入,如sysdba:

impdp \'/as sysdba\' full=Y directory=dir dumpfile=importDump.dmp logfile=import.log;

我收到了这些错误:

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics, and Real Application Testing options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation

据我在搜索结果中可以看到,它与权限有关。 Oracle用户应该拥有这些文件。 我尝试导入的文件的权限如下所示:

-rw-r--r-- 1 oracle12c root 2201247744 Feb 21 16:51 latest_exp.dmp

这里有什么问题,我该如何克服它?当文件的所有者是oracle12时是否有问题?互联网上的一些解决方案说文件必须由试图访问文件的用户拥有,在我的例子中是sysdba。但我无法将所有者更改为我的文件sysdba,因为我的Ubuntu上不存在该用户。

另外,我们指定了dumfile和logfile,但是我们没有指定位置。它会在哪里创建这些位置?我假设它会在这里寻找它们:/u01/app/oracle/oradata/orcl$其中orcl是我的SID

在Google和Oracle Doc的帮助下,我无法解决我的问题。

我在Ubuntu上运行。

1 个答案:

答案 0 :(得分:2)

Oracle目录对象应指向操作系统目录,而不是文件;而不是:

create or replace directory dir as '/home/oracle12c/Desktop/latest_exp.dmp'

它应该只是:

create or replace directory dir as '/home/oracle12c/Desktop'

转储文件应该位于该目录中,默认情况下也会在那里创建日志和坏文件。

目前,您要求它在/home/oracle12c/Desktop/latest_exp.dmp目录下创建日志文件,即/home/oracle12c/Desktop/latest_exp.dmp/import.log - 这显然不是有效的完整路径;并且还要在该非目录下查找文件importDump.dmp

您的命令行看起来有错误的名称:

impdp ... directory=dir dumpfile=latest_exp.dmp logfile=import.log