在server2008 上进行impdp引发的血案(ORA-39070)

来源:互联网 发布:电脑主题软件排行 编辑:程序博客网 时间:2024/05/16 05:42

操作系统 : server 2008

O/S User : 非administrator

DB version: oracle 11g

 

 

操作步骤:

 1.创建目录:d:\dump_dir

 2.以system用户登录db,并创建directory

     create directory dumpdir as; (注意:此时oracle并不做目录有效性检查)

3.copy dump文件到目录 'd:\dump_dir'

4.执行导入:

expdp test/test@db dumpfile=tables.dmp directory=dumpdir  logfile=n job_name=exptab parallel=4

5.报错

ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 475
ORA-29283: invalid file operation

6.查询dba_directories, dumpdir对象存在。感觉有些奇怪

7. 查看文件夹'd:\dump_dir'的权限,为只读,改为读写时报没有权限更改的错误。

8.从dba_directories查询出oracle自建的directory对象,例如:DATA_DUMP_DIR, 并将dump文件copy到该目录下

9. 再导入,用DATA_DUMP_DIR

expdp test/test@db dumpfile=tables.dmp directory=DATA_DUMP_DIR logfile=n job_name=exptab parallel=4

  导入成功,但报很多oRA-39111错误,这些错误似乎是正常的:

RA-39111: Dependent object type TRIGGER:"TAICHI_SCHEMA"."KNTA_PARAMETER_SET_FIELDS_TRIG" skipped, base object type VIEW:"TAICHI_SCHEMA"."KNTA_P
DS" already exists

 

总结原因:可能是操作系统权限的限制导致oracle无法在d:\dump_dir 下创建log文件。本人对server 2008不是很熟,所以只能猜测:server 2008可能也有个selinux一样变态的权限控制。

 

 

 


 

原创粉丝点击