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

时间:2018-06-18 09:44:32

标签: oracle oracle12c datapump

我正在使用数据泵对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的新手,无法找到有用的解决方案。

我正在here执行导入,虽然我使用的是oracle 12c。

我在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机器上,那么我们需要确保监听器和数据库都使用完全相同的用户名启动。'这是否适用于导入?如果是的话 - 究竟是什么意思?

2 个答案:

答案 0 :(得分:0)

a great short answer here,基本上是“数据库无法写入日志文件位置。”

上面的链接提供了一个简单的测试来解决问题。

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输出,因为它不会在其他地方保存。< / p>

答案 1 :(得分:0)

您遇到的问题是您的Oracle无法写入您指定的DIRECTORY(DUMP_DIR)。 在Windows 10中,它的行为异常。解决方案

  1. 最好在C:\ Users \ Public \文件夹中创建另一个Oracle目录,您可以在其中100%确保不会出现访问问题。 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. 启动导入命令
相关问题