登陆plsql使用Select name from v$tempfile 查看表空间路径
执行创建表空间语句 例:
create tablespace ZL9INDEXHIS DATAFILE '/data/oracle/oradata/his/ZL9INDEXHIS.DBF' SIZE 1816m;
登陆plsql创建directory
sys@His/aqa as sysdba登录plsql
create directory test as '/data/test';--要到对应目录下创建相应文件夹并将DMP文件拷贝到该目录下
grant read,write on directory test to system; --授权
执行导入脚本
impdp system/aqa@his dmpfile=20220210_%U.dmp directory=test full=y logfile=20220210.log parallel=4
报错:
ORA-39002: 操作无效
ORA-39070: 无法打开日志文件。
ORA-29283: 文件操作无效
ORA-06512: 在 "SYS.UTL_FILE", line 488
ORA-29283: 文件操作无效等类似的错误。
查看对应目录的权限
对test目录权限不足,777授权
查看test目录下文件的权限
权限不足,777授权并调整所属组和用户为oracle oinstall
进入oracle用户查看权限
再次执行导入语句
impdp system/aqa@his dumpfile=20220210_%U.dmp directory=test full=y logfile=20220210.log parallel=4
报错
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-31640: unable to open dump file "/data/test/20220210_01.dmp" for read
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
查看导入语句并修改
impdp system/aqa@his dumpfile=20220210_%U.DMP directory=test full=y logfile=20220210.log parallel=4
导入成功
修改字段为导入的文件名称,要区分大小写,导入文件的后缀.DMP是大写的,修改为大写导入成功
有时候将目录权限授予之后还是出现第一种错误,有可能是我们的directory创建的有问题,可以使用
select * from dba_directories;---查询directory目录
再使用
drop directory DIRENAME;---将其删除后重新创建授权,再导入尝试