首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle数据泵导入ORA-39002与ORA-39070,ORA-29283和其他Windows 10

oracle数据泵导入ORA-39002与ORA-39070,ORA-29283和其他Windows 10
EN

Stack Overflow用户
提问于 2018-06-18 09:44:32
回答 3查看 63K关注 0票数 5

我使用数据泵对4个.dmp文件执行导入,并继续接收以下错误集:

代码语言:javascript
复制
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

我是神谕新手,找不到有用的解决方案。

虽然我使用的是oracle12c,但我正在执行这里中的导入。

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

代码语言:javascript
复制
impdp user/pass@db_name directory=DUMP_DIR dimpfile="file_name.dmp" schemas=schema_name content=all parallel=4

DUMP_DIR是在oracle中创建的,并授予了适当的特权。

我还运行了以下命令

代码语言:javascript
复制
... logfile=file_name.log

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

我已经找到了 --除了在导出和linux上,它几乎是相同的一组错误。在答案的末尾有一句话‘如果我们在Windows机器上,那么我们需要确保监听器和数据库都是以完全相同的方式启动的。’这对进口有用吗?如果是的话-这到底是什么意思?

EN

回答 3

Stack Overflow用户

发布于 2018-06-18 14:22:07

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

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

代码语言:javascript
复制
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服务正在以哪个用户的身份运行,并更改文件夹权限以允许他们写入访问权限。

如果这有效的话,这是一个特定的问题。您可以尝试更改命令字符串--一种选择可能是将日志文件具体地写入不同的logfile=DATA_PUMP_DIR:file_name.log目录,例如。

如果这些选项都不起作用,您也可以使用NOLOGFILE=Y完全禁用日志文件,但是您必须监视控制台上的impdp输出,因为它不会保存在其他任何地方。

票数 4
EN

Stack Overflow用户

发布于 2019-01-31 22:12:00

您遇到的问题是,无法将您指定的写入目录(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. 启动导入命令
票数 1
EN

Stack Overflow用户

发布于 2022-09-14 09:53:23

首先,Oracle拥有写入和读取文件夹的权限,这一点非常重要。如果您已经对此进行了测试,请尝试下面的解决方案:

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

代码语言:javascript
复制
impdp 'sys/passExample as sysdba' directory=C:/oracle/oradata/EXEMPLODB dumpfile=preupd.bak

我将preup.bak放入EXEMPLODB文件夹

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

代码语言:javascript
复制
impdp 'sys/passExample as sysdba' directory=EXT_DATA_FILES dumpfile=preupd.bak

EXT_DATA_FILES是我在查询中找到的目录名。

代码语言:javascript
复制
select * from all_directories;  

进入系统数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50906667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档