我试图用EXPDP对一些表执行导出我的Oracle DB使用Oracle Linux的EXPDP到Windows网络驱动器
我的代码:
expdp AAA/***@xxx schemas=AAA include=TABLE:\"= \'TBL001\'\" directory=DUMP_DIR dumpfile=dmpfile.dmp logfile=lgfile.txt
这是我得到
ORA-39002:无效操作
ORA-39070:无法打开日志文件。
ORA-29283:无效的文件操作
ORA-06512:在 “SYS.UTL_FILE”,线路536
ORA-29283:无效的文件操作
我网上查了,我想这是corssing不同的操作系统和/或授权的问题
这是我的情况:
- 使用CentOS 7的Linux计算机上的Oracle DB
- directory = DUMP_DIR是DB上的目录对象。它的建立,因为我通过Linux计算机= SMB看到的路径:// Win_machine1/dump_oracle/
- dump_dir中位于在Windows Server 2008 R2(Win_machine1)
- 我可以从Oracle机给Windows凭据达到dump_dir中的
- 我在Win_machine1中启动一个.bat文件,上面写有expdp命令
Q1:Oracle Server通过Win Server授权?我想Oracle使用AAA访问数据库并执行导出操作,但是哪个用户访问目录DUMP_DIR?当我位于它的CentOS它问我要证件(我告诉它记得了),但我不知道是否它存储他们,如果EXPDP使用它们。 (AAA不是域用户)
难道是这个问题,或者我应该检查别的东西?
谢谢 马塞罗
Oracle软件所有者访问OS目录,而不是运行导出的用户。您可能需要从该帐户访问共享,以保存凭据,但前提是这是一个有效/安全的事情(其凭据?)。我不确定Oracle是否知道如何处理'smb://'路径格式;如果不是,你可以装载,以便你可以参考一个正常的本地挂载点路径? –
共享位于执行expdp的同一台服务器上,因此登录Win_machine1的Windows用户与具有打开共享权限的用户相同。 我不知道如何翻译smb://路径,或者如果可能......但我认为我必须使用CentOS位置,因为DB安装在那里。 –
不确定你的意思。 Linux上的Oracle用户通过目录对象访问共享 - 该用户(不是你在Linux机器上运行expdp的人)必须能够访问该共享。您是否以Oracle用户的身份验证了访问权限? –