1

在其中一个 RAC 实例上运行以下命令

expdp system/password@orcl DIRECTORY=Test DUMPFILE=user1.dmp owner=user1 LOGFILE=log1.log

我面临以下错误:

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

我在同一个 RAC 实例上使用以下 SQL 命令创建了“测试”目录:

CREATE DIRECTORY Test AS '/usr/apps/datafiles';

你能帮我成功导出数据库吗?

4

5 回答 5

3

您可以将日志文件更改为任何其他默认目录,例如 DATA_PUMP_DIR,这样即使它也可以在任何其他节点上执行,因为默认目录将在所有节点上可用。

logfile=DATA_PUMP_DIR:impdp.log
于 2013-04-01T17:37:55.203 回答
3

你得到的错误是ORA-29283

> oerr ora 29283
29283. 00000 -  "invalid file operation"
*Cause:    An attempt was made to read from a file or directory that does
           not exist, or file or directory access was denied by the
           operating system.
*Action:   Verify file and directory access privileges on the file system,
           and if reading, verify that the file exists.

所以要么/usr/apps/datafiles目录不存在,要么Oracle进程所有者(例如oracle帐户)不可写;或者可能(但不太可能)您指定的日志文件已经存在并且不能被覆盖。

既然您说它存在,请查看目录的完整权限(例如ls -ld /usr/apps/datafiles,检查 Oracle 进程所有者的所有者和组(例如id -a)以比较该目录及其父目录的权限。如果一切正常,则以 Oracle 进程所有者身份登录,检查是否可以在目录下创建文件,例如:

touch /usr/apps/datafiles/test_file
ls -l /usr/apps/datafiles/test_file
rm -f /usr/apps/datafiles/test_file

如果所有这些都有效,并且我猜您的评论可能确实如此,那么由于您使用的是 RAC,您可能需要参考支持说明 1305166.1。

首先要尝试的是expdp不使用@orcl,因为看起来 (a) 当侦听器和数据库在不同帐户下运行时出现问题(例如gridoracle,并且grid用户无法访问 OS 目录 -touch以该用户身份重复测试看看是不是这样);或者 (b) 如果别名是负载平衡的并且它最终在没有目录的不同节点上运行。

于 2012-08-16T10:13:08.660 回答
0

获取 ORA-39002;运行 expdp 时出现 ORA-39070 和 ORA-39087。

例如:

$ expdp dbschema/dbpassw DIRECTORY=DATA_PUMP_DIR DUMPFILE=Test1.dmp logfile=Test1.log SCHEMAS=dbschema

Export: Release xx.x.x.x.x – xxbit Production on Tuesday, xx xxxxxxxx, xxxx xx:xx:xx

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release xx.x.x.x.x – xxbit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name DATA_PUMP_DIR is invalid

解决方案:

grant read, write on directory DATA_PUMP_DIR to system, dbschema;
于 2014-06-16T19:37:00.607 回答
0

The users might not have permission to use the directory. You need to login as sysdba and provide the necessary permissions

grant read, write on directory to PUBLIC;

Then try the export using data pump, this should solve your issue.

于 2013-07-15T07:18:55.373 回答
0

如果您正在为以下练习进行此练习:Oracle Database 11gR2 Jumpstart Guide Chapter 9 page 87 (I'm on Windows 10) ..after doing

创建或替换目录 exp_dir AS 'c:\oraclexe\exp_dumps'; --我还看到一个链接说要在这个路径的末尾添加一个 \ --so 'c:\oraclexe\exp_dumps\' --我不确定这是否也解决了我的问题所以我包括这个

GRANT READ,WRITE ON DIRECTORY exp_dir TO hr;

--我也只是在这里使用了系统

接下来只需转到该父目录并手动创建“exp_dumps”目录

然后它对我有用

于 2018-03-21T03:26:54.357 回答