0

我正在尝试使用 oracle expdp 在远程计算机上导出转储文件和日志文件。但是我收到以下错误:

Connected to: Oracle Database 11g 
Enterprise Edition Release 11.2.0.4.0 - 64bit 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-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation

使用 oracle 客户端在远程计算机主机名“本地”上运行的命令是:

SQL> create directory expdp_dir as '/vault2/expdp_dir';
SQL> grant read,write on directory expdp_dir to dbuser;
expdp dbuser/dbpwd@SID SCHEMAS=dbuser DIRECTORY=expdp_dir DUMPFILE=testDB24NOV17.dmp logfile=testDB24NOV17.log EXCLUDE=STATISTICS

注意 Vault 2 安装在主机名为“Local”的远程计算机上。该数据库位于主机名为 TestDB 的机器上。

操作系统是 RHEL6。

任何有关使此操作成功的想法/想法将不胜感激。

4

1 回答 1

0

请检查这个:根据 Oracle Doc.ID Doc ID 1305166.1

错误可能有多种原因。下面列出了已知原因。

  1. 发生此问题的常见原因之一是未在与数据库实例服务相同的帐户下启动侦听器进程。侦听器派生出新的服务器进程,当它在与数据库不同的安全上下文下运行时,对目录和文件的访问可能会受到影响。

请验证以下信息:1)输出:ps -ef | grep SMON 2) 输出:ps -ef | grep tnslsnr 3) 输出:ps -ef|grep LIST 4) 输出:ls -ld

注意:使用 ASM 时,侦听器可能是从 ASM Home 而不是 RDBMS Home 启动的。根据您的安全设置,这可能会导致此问题。

还有一个: 4. 目录路径/文件夹存在,但创建目录由数据库中的不同用户执行,并且导入由不同用户运行。

解决方法: 1. 确保监听器和实例服务是从同一个账号启动的。

  1. 确保该目录在节点之间共享,以便可以在任何实例上访问该目录,或者,如果已经在具有相同文件目录的所有节点上本地创建了一个文件夹,则在本地创建一个类似于其他节点的文件夹路径结构检查权限是否正确。

  2. 确保文件夹存在已在创建期间在“CREATE DIRECTORY”语法命令中指定。

  3. 向导入用户授予使用该目录所需的权限。

授予读取,写入目录到;

如果以上 4 种可能的原因和解决方案对您不适用,请检查用户是否具有适当的导出权限以运行 utl_file 包。

希望能帮助到你。

于 2017-11-24T17:39:54.787 回答