oracle - oracle 数据泵在 Windows 10 上导入 ORA-39002 和 ORA-39070、ORA-29283 等
问题描述
我正在使用数据泵对 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,但我正在执行这里的导入。
我在 windows 命令中运行的命令如下所示:
impdp user/pass@db_name directory=DUMP_DIR dimpfile="file_name.dmp" schemas=schema_name content=all parallel=4
DUMP_DIR 在 oracle 中创建,并授予了适当的权限。
我也运行了这个命令
... logfile=file_name.log
最后添加,但我不确定日志文件是否创建或保存在哪里。
我发现了这一点- 它与导出和 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;
/
如果此操作失败,Oracle 将根本无法写入该目录,可能是因为 Windows 文件权限。检查 Oracle 服务以哪些 Windows 用户身份运行,并更改文件夹权限以允许他们进行写访问。
如果这有效,这是impdp特有的问题。您可以尝试更改您的命令字符串 - 一个选项可能是专门将您的日志文件写入不同的 Oracle 目录,例如logfile=DATA_PUMP_DIR:file_name.log
.
如果这些选项都不起作用,您也可以使用 完全禁用日志文件NOLOGFILE=Y
,但您必须在控制台上监视 impdp 输出,因为它不会保存在其他任何地方。
推荐阅读
- python - 使用条件计算数据框中列的平均值
- javascript - 日期选择器作为表格
- xamarin.forms - 飞溅后应用程序中断,但视觉工作室仍在运行
- arrays - Excel VB用字符串替换0和1 - 但是字符串包含1和0,需要if语句来检查长度是否= 1然后替换否则跳过
- python - sqlalchemy 什么时候对象变得“不持久”
- java - JNI,由:java.lang.UnsatisfiedLinkError: com.tencent.wxapp.core.jni.JNI.call(Ljava/util/List;)[B
- react-native - 如何在 ReactNative Iphone App 的 Visual Studio 代码中授予访问相机照片库的权限
- django - 在 django-filter 中更改下拉选项的方法
- c++ - C++ 类型“SnakeHead(*)()”的值不能用于初始化“SnakeHead*”类型的实体
- java - 试图在 Java 中将 Unix 命令的输出作为字符串返回......没有得到预期的结果