oracle - 使用 Oracle-Linux expdp 到 windows 网络驱动器

标签 oracle oracle11g expdp oracle-dump

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

我的代码:

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) 上
  • 我可以从 Oracle 机器访问 DUMP_DIR,提供 Windows 凭据
  • 我使用上面编写的 expdp 命令在 Win_machine1 中启动一个 .bat 文件

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

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

谢谢, 马塞洛

最佳答案

我找到了解决方案:

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

cd /mnt

mkdir mydir

然后使用mount挂载

mount -t cifs -o username,password //servername/sharename /mnt/mydir/

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

然后在Oracle DB上创建目录

CREATE OR REPLACE DIRECTORY DUMP_DIR AS '/mnt/mydir'

expdp 正常工作

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

关于oracle - 使用 Oracle-Linux expdp 到 windows 网络驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43493011/

相关文章:

oracle - Oracle是否支持全文搜索?

c# - 如何使用 Entity Framework 使用序列在 Oracle 中插入标识值

c++ - 使用 ODBC 驱动程序时 Qt 应用程序崩溃 (macOS)

oracle - expdp会删除Oracle中的数据吗?

oracle - SQLPlus - 数据泵(expdp 和 impdp)

oracle - 安装带有 Oracle 和 Liberty 的 Worklight Server v506 不会创建预期的目录结构

sql - 将 INTERVAL DAY(0) 格式化为 SECOND(0)

mysql - 当我尝试将它从 mysql 迁移到 Oracle 时出现 SQL 语句错误

oracle - 如何从 Oracle 数据泵导出中排除某些表

sql - order by 与 union all 子句的有趣行为