oracle impdp 导入

用imp语法导入dmp文件:

imp mdm/mdm@SYSWARE  file= ‪E:Product9y5s5.MDM20161024.DMP  full=y

报错 IMP-00002:无法打开 *.dmp 进行读取

反复检查语法无误,经过查找资料,怀疑dmp是用expdp导出的文件,必须要用impdp导入

创建路径lsj 并给mdm用户授权

--导入时必须先创建文件夹路径 

create or replace directory lsj as 'E:dmp';

--给使用的用户授权(读写权限) 

grant read,write on directory lsj to mdm;

--查看目录及权限  SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;  

将dmp文件 防到定义的directory中

impdp mdm/mdm@SYSWARE  schemas=sysware directory=lsj file=20161024.DMP 

结果报错:ORA-39165:未找到方案 SYSWARE;

 因为库文件是同事传过来的,我怀疑schemas 的表空间名不对,然后联系更改!

(schemas的表空间必须是在 dmp文件中包含的才行)

原来给的dmp中表空间为p2m_mdm_20161012 更改后执行

impdp mdm/mdm@SYSWARE  schemas=p2m_mdm_20161012 directory=lsj file=20161024.DMP 

结果报错:

ora-31655:尚未为作业选择数据或数据对象

ora-39154:外部方案中的对象已从导入中删除

 :

 原来是要导入的对象表空间跟现在的表空间不匹配

除本地建立一个同名为p2m_mdm_20161012  的表空间;即可解决!

那怎有没有办法不建立同名表空间导入呢?当然可以需要更换参数:用remap_schema 替换 schemas,然后执行

impdp mdm/mdm@SYSWARE  remap_schema=p2m_mdm_20161012:mdm directory=lsj dumpfile=20161024.DMP 

结果报错

ora-39083:对象类型user创建失败,出现错误;

ora-31625:必须有方案system才能导入此对象,但此方案不可访问

ora-01031:权限不足

权限不足,用DBA用户登录数据库,给导入库的用户先授权

grant connect,resource to mdm;


grant create session,dba to mdm;

 再执行  impdp mdm/mdm@SYSWARE  directory=lsj file=20161024.DMP  REMAP_SCHEMA=p2m_mdm_20161012:mdm

 如果不同表空间 必须建立  相同的表空间名 已经实例名相同的表空间放才能成功!

原文地址:https://www.cnblogs.com/lishuangjiang/p/6219512.html