你得到的错误是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) 当侦听器和数据库在不同帐户下运行时出现问题(例如grid
和oracle
,并且grid
用户无法访问 OS 目录 -touch
以该用户身份重复测试看看是不是这样);或者 (b) 如果别名是负载平衡的并且它最终在没有目录的不同节点上运行。