使用impdp方式导入dmp文件,需要指定一个directory,来告诉oracle你的dmp文件和log文件的存放路径.而这个小小的directory是一个躲不开的天坑....
一般的导入前准备工作:
查看现有directory:select * from dba_directories;
创建(存在则替换)directory:create or replace directory dmp_dir as 'D:\xxxx\dmp';
路径授权:grant read,write on directory dmp_dir to user_name;
impdp user/passwd@ORCL DIRECTORY=dmp_dir DUMPFILE=xxxx.DMP REMAP_SCHEMA=source:target REMAP_TABLESPACE=source:target logfile=dmp_dir:xxxx.log;
执行时经常会碰到下面的错误:
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
常见原因一般归为2中:
1.权限不够,首先检查是否使用grant授权,再查看目录的访问权限.
2.路径问题,这个是很坑人的,具体编码原因不去做深究,虽然在dos窗口下你查看带有汉字的路径并无异样,但很多时候路径中有空格,汉字等等都有可能导致上面的错误,所以,重要的事情说3遍:
请使用纯英文路径.
请使用纯英文路径.
请使用纯英文路径.
本文详细介绍了使用Oracle的impdp工具导入dmp文件时常见的问题及解决方案,包括directory的创建、路径授权、纯英文路径的重要性,以及遇到ORA-39002、ORA-39070等错误的排查思路。
10万+

被折叠的 条评论
为什么被折叠?



