oracle 数据泵在 Windows 10 上导入 ORA-39002 和 ORA-39070、ORA-29283 等

问题描述 投票:0回答:4

我正在使用数据泵对 4 个 .dmp 文件执行导入,并继续收到如下一组错误:

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 新手,找不到有用的解决方案。

尽管我使用的是 oracle 12c,但我正在按照here执行导入。

我在 Windows 命令中运行的命令如下所示:

impdp user/pass@db_name directory=DUMP_DIR dimpfile="file_name.dmp" schemas=schema_name content=all parallel=4

在 oracle 中创建 DUMP_DIR 并授予适当的权限。

我也用

运行了这个命令
... logfile=file_name.log

添加在最后,但我不确定日志文件是否已创建或保存在哪里。

我发现了this - 这是完全相同的一组错误,但在导出和 Linux 上。答案的末尾有一句话“如果我们在 Windows 计算机上,那么我们需要确保侦听器和数据库都已使用完全相同的用户名启动。”这对于导入有用吗?如果是 - 到底是什么意思?

oracle oracle12c datapump
4个回答
6
投票

这里有一个很好的简短答案,基本上是“数据库无法写入日志文件位置。”

上面的链接建议进行一个简单的测试来解决该问题。

declare f utl_file.file_type; begin f := utl_file.fopen ('DUMP_DIR', 'test.txt', 'w'); utl_file.put_line(f, 'test'); utl_file.fclose(f); end; /

如果失败,Oracle 根本无法写入该目录,可能是因为 Windows 文件权限的原因。检查 Oracle 服务以哪个 Windows 用户身份运行,并更改文件夹权限以允许他们写入访问权限。

如果有效,则这是

impdp 特有的问题。您可以尝试更改命令字符串 - 一种选择可能是将日志文件专门写入不同的 Oracle 目录,例如logfile=DATA_PUMP_DIR:file_name.log

如果这些选项都不起作用,您还可以使用

NOLOGFILE=Y

 完全禁用日志文件,但您必须监视控制台上的 impdp 输出,因为它不会保存在其他地方。


2
投票
您遇到的问题是

您的 Oracle 无法写入您指定的目录 (DUMP_DIR) 。 在 Windows 10 中,它的行为是不可预测的。解决方案

    创建另一个 Oracle 目录,最好在 C:\Users\Public\ 文件夹中,您 100% 确定不会出现访问问题。
  1. CREATE OR REPLACE DIRECTORY DUMP_DIR_2 AS 'C:\Users\Public\<name>
    
    
  2. 给予补助金

    GRANT READ, WRITE ON DIRECTORY DUMP_DIR_2 TO schema_name;

  3. 将转储文件复制到新创建的文件夹中。

  4. 启动导入命令

0
投票
首先非常重要的是Oracle有读写该文件夹的权限。如果您已经对此进行了测试,请尝试以下解决方案:

我也遇到了同样的情况,在我的例子中,命令是(密码仅用于实例):

impdp 'sys/passExample as sysdba' directory=C:/oracle/oradata/EXEMPLODB dumpfile=preupd.bak
我将 preup.bak 放入 EXEMPLODB 文件夹中

正确的是通过目录名称更改目录文件夹,正确的命令是:

impdp 'sys/passExample as sysdba' directory=EXT_DATA_FILES dumpfile=preupd.bak
EXT_DATA_FILES是目录名称,我通过查询找到的

select * from all_directories;
进入系统数据库。


0
投票
我正在从 Oracle Linux 操作系统上的 oracle 11g 导出方案。

expdp“'sys/pass@PEDX as sysdba'”转储文件=05042023.dmp LOGfile=05042023.log目录=导出模式=DEMO

我收到此错误消息:

连接到:Oracle Database 19c 企业版版本 19.0.0.0.0 - 生产 ORA-39002: 无效操作 ORA-39070: 无法打开日志文件。 ORA-29283: 无效文件操作: 无法打开文件 [29435]

问题出在目录导出上,它是 ISCSI 驱动器,并且没有安装在我的 Linux 上。

© www.soinside.com 2019 - 2024. All rights reserved.