oracle imp导入39002,【IMPDP】使用工具IMPDP导入数据时ORA-39002、ORA-39070错误排查

今天在使用IMPDP完成数据导入的过程中遇到“ORA-39002、ORA-39070……”连续报错。导致问题原因很简单,但是提示的错误信息内容比较“诡异”,为了朋友们少走弯路,简单记录一下这个问题的处理过程。1.问题再现sec@secDB /db_backup/dpump_dir$ impdp sec/sec directory=dpump_dir dumpfile=20100604020437_sec.dmp logfile=impdp.logImport: Release 10.2.0.3.0 - 64bit Production on Friday, 04 June, 2010 14:39:16Copyright (c) 2003, 2005, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit ProductionWith the Partitioning, OLAP and Data Mining optionsORA-39002: invalid operationORA-39070: Unable to open the log file.ORA-29283: invalid file operationORA-06512: at "SYS.UTL_FILE", line 475ORA-29283: invalid file operation2.问题分析这里的“ORA-39070”提到的“Unable to open the log file.”初看非常的“诡异”,到底无法打开什么日志文件呢?难道是没有权限在这个目录下写文件?经过“touch”测试排除了这种可能性。不管怎么说,这个问题与文件操作相关。顺着这个思路继续前行,终于发现原来数据库中的directory数据库对象所指向的目录为“/oradata/dpump_dir”,而在该操作系统中根本没有这个目录,因目录不存在,日志文件也就理所当然的无处可写。不过这个报错的信息却是不够明显,如果能够给出更多的检查和明确的报错信息就更好了。sys@ora10g> col owner for a6sys@ora10g> col DIRECTORY_NAME for a20sys@ora10g> col DIRECTORY_PATH for a30sys@ora10g> select * from dba_directories where DIRECTORY_NAME = 'DPUMP_DIR';OWNER  DIRECTORY_NAME       DIRECTORY_PATH------ -------------------- ------------------------------SYS    DPUMP_DIR            /oradata/dpump_dir3.问题处理发现问题后,处理方法就简单了许多,只需要重新创建directory数据库对象即可。sys@sec> drop directory dpump_dir;Directory dropped.sys@sec> create directory dpump_dir as '/db_backup/dpump_dir';Directory created.sys@sec> grant read, write on directory dpump_dir to public;Grant succeeded.4.导致该问题的潜在原因在10g环境中即使在创建directory数据库对象的过程中即使所引用的目录不存在,该命令也是可以正常创建的,这就是容易误操作的根本原因。sys@ora10g> create directory dpump_dir_test as '/sec/ool/er';Directory created.小心陷阱。5.小结从该问题的处理过程中我们可以看到,在报错信息不实很明显的时候我们往往手足无措。越是在这样的场景,我们越应该沉着冷静,从整个操作的源头一步一步的去排查,终有柳暗花明之时。Good luck.secooler10.06.04-- The End --

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值