我正在使用数据泵对 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
Run Code Online (Sandbox Code Playgroud)
我是 oracle 的新手,找不到有用的解决方案。
尽管我使用的是 oracle 12c,但我正在执行此处的导入。
我在 windows 命令中运行的命令如下所示:
impdp user/pass@db_name directory=DUMP_DIR dimpfile="file_name.dmp" schemas=schema_name content=all parallel=4
Run Code Online (Sandbox Code Playgroud)
DUMP_DIR 在 oracle 中创建并授予适当的权限。
我也运行了这个命令
... logfile=file_name.log
Run Code Online (Sandbox Code Playgroud)
添加在最后,但我不确定日志文件是否已创建或保存在何处。
我发现了这一点- 它是关于完全相同的一组错误,但在导出和 linux 上。在答案的末尾有一句话“如果我们在 Windows 机器上,那么我们需要确保侦听器和数据库都已使用完全相同的用户名启动。” 这在导入的情况下有用吗?如果是 - 这究竟是什么意思?
这里有一个很好的简短答案,基本上是“数据库无法写入日志文件位置”。
上面的链接建议进行一个简单的测试来解决该问题。
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;
/
Run Code Online (Sandbox Code Playgroud)
如果失败,Oracle 根本无法写入该目录,可能是因为 Windows 文件权限的原因。检查 Oracle 服务以哪些 Windows 用户身份运行,并更改文件夹权限以允许他们进行写访问。
如果有效,则这是impdp特有的问题。您可以尝试更改命令字符串 - 一种选择可能是将日志文件专门写入不同的 Oracle 目录,例如logfile=DATA_PUMP_DIR:file_name.log.
如果这些选项都不起作用,您还可以使用 完全禁用日志文件NOLOGFILE=Y,但您必须监视控制台上的 impdp 输出,因为它不会保存在其他地方。
| 归档时间: |
|
| 查看次数: |
41746 次 |
| 最近记录: |