在server2008上进行impdp引发的(ORA-39070)的问题
操作系统 : server 2008
www.2cto.com
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.报错 www.2cto.com
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-oracle账号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 www.2cto.com
总结原因:可能是操作系统权限的限制导致oracle无法在d:\dump_dir 下创建log文件。本人对server 2008不是很熟,所以只能猜测:server 2008可能也有个selinux一样变态的权限控制。
作者 zero_plus