1

我正在尝试使用 expdp 对我的 Oracle DB 的某些表执行导出

我的代码:

expdp AAA/***@xxx schemas=AAA include=TABLE:\"= \'TBL001\'\" directory=DUMP_DIR dumpfile=dmpfile.dmp logfile=lgfile.txt

这就是我得到的:

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

我在网上查了一下,我猜这是越过不同操作系统和/或授权的问题

这是我的情况:

  • 装有 CentOS 7 的 Linux 机器上的 Oracle DB
  • directory=DUMP_DIR 是 DB 上的目录对象。它是在我看到通过 Linux Machine = smb://Win_machine1/dump_oracle/ 的路径时创建的
  • DUMP_DIR 位于 windows server 2008 R2 (Win_machine1)
  • 我可以从提供 Windows 凭据的 Oracle 机器访问 DUMP_DIR
  • 我使用上面写的 expdp 命令在 Win_machine1 中启动一个 .bat 文件

Q1:Oracle机器通过Win Server授权?我想Oracle使用AAA访问数据库并执行导出操作,但是哪个用户访问目录DUMP_DIR?当我在 CentOS 中找到它时,它要求我提供凭据(我告诉它记住),但我不知道它是否存储了它们,或者 expdp 是否使用它们。(AAA 不是域用户)

可能是这个问题还是我应该检查其他东西?

谢谢你,马塞洛

4

1 回答 1

2

我找到了解决方案:

在 Linux 中使用 mkdir 在 /mnt/ 下创建目录

光盘 /mnt

mkdir mydir

然后使用 mount 挂载它

mount -t cifs -o username,password //服务器名/共享名 /mnt/mydir/

其中用户名和密码是能够访问共享的 Windows 用户, //servername/sharename 是我的共享路径(如果无法解析 DNS,则服务器名 = IP 地址)

然后在 Oracle DB 上创建目录

创建或替换目录 DUMP_DIR AS '/mnt/mydir'

expdp 工作正常

expdp AAA/***@xxx schemas=AAA include=TABLE:\"= \'TBL001\'\" 目录=DUMP_DIR dumpfile=dmpfile.dmp logfile=lgfile.txt

于 2017-04-19T14:12:31.490 回答