操作系统 : 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一样变态的权限控制。
本文详细介绍了在使用Oracle 11g进行数据导入时遇到的问题,包括目录创建、权限设置及操作系统权限限制的影响,并提供了解决方案。主要关注了如何在Server 2008环境下正确配置数据库目录和权限,以确保数据导入过程顺利进行。
803

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



