Oracle数据泵impdp跨服务器导入失败,请求技术支持
解决Oracle impdp导入时ORA-31640文件找不到的问题
核心问题分析
错误提示明确说明目标服务器上找不到指定的dump文件,因为impdp是服务器端工具,它会在你连接的目标数据库(192.168.67.68)对应的服务器文件系统中查找文件,而不是你执行命令的本地机器。
排查解决步骤
确认dump文件是否存在于目标服务器的指定路径
登录到192.168.67.68服务器,切换到oracle用户,执行以下命令检查文件:ls -l /u01/app/oracle/admin/serv1/dpdump/mltpltblbkp.dmp如果文件不存在,需要将dump文件传输到该路径;如果存在,检查文件权限是否允许oracle用户读取(确保文件属主是
oracle:oinstall,权限至少为640)。修正用户权限配置
你当前给system用户授予了DATA_PUMP_DIR的读写权限,但执行impdp的是atif用户,需要给atif用户也分配该目录的权限:grant read, write on directory data_pump_dir to atif;同时验证atif用户的导入权限是否生效:
select * from dba_role_privs where grantee='ATIF' and granted_role='DATAPUMP_IMP_FULL_DATABASE';确保查询返回结果,说明权限已正确授予。
验证DIRECTORY对象的实际路径
有时候DIRECTORY对象配置的路径可能和预期不符,登录目标数据库执行以下命令确认:select directory_name, directory_path from dba_directories where directory_name='DATA_PUMP_DIR';确认返回的路径和你实际存放dump文件的路径完全一致(注意大小写和斜杠)。
传输dump文件到目标服务器(如果文件在本地)
如果dump文件在你执行impdp命令的本地机器,需要先将文件传到目标服务器的DATA_PUMP_DIR路径,比如用scp命令:scp mltpltblbkp.dmp oracle@192.168.67.68:/u01/app/oracle/admin/serv1/dpdump/传输完成后,修正文件权限:
chown oracle:oinstall /u01/app/oracle/admin/serv1/dpdump/mltpltblbkp.dmp chmod 640 /u01/app/oracle/admin/serv1/dpdump/mltpltblbkp.dmp
内容的提问来源于stack exchange,提问作者dbafix
相关产品推荐
相关产品推荐

