关于 IMPDP 导入问题 ,关于ora-39125 错误 “对象已存在” 的解决

用数据泵导入数据库效率很高,但是需要了解一点点东西

 

下面用个例子来说明

 

impdp tbzh_xxx/tbzh_xxx  DIRECTORY=DUMP  logfile=import.log DUMPFILE=tbzh_data-bak.dmp REMAP_SCHEMA=tbzh_data:tbzh_xxx REMAP_TABLESPACE=hrdb:tbzh

 

解释:

tbzh_xxx/tbzh_xxx 数据库的用户名和密码

 

DIRECTORY=DUMP  dmp文件所在的路径

 


      关于这个DIRECTORY 的解释:这是impdp的一个参数,用于指明被导入的dmp文件所在的路径。

      关于DUMP的解释:这个DUMP其实指代的就是具体的路径。不过由于impdp的设计者比较纠结,这个DUMP并不能直接写文件路径,而是得先建立一个对象,定义具体的路径,再把这个对象写上去。

 

      忽略以上的文字,那么DUMP应该怎么建立呢?如果有PL/SQL,就很简单,直接在左侧的树状菜单中点击Directories,点击右键,选择“新建”,然后在名称中输入“DUMP”,路径输入dmp文件所在的文件夹就可以了。这里大家应该发现DUMP其实就是一个名字而已,你可以自己给它命名,叫COOL还是叫灰太狼都没有关系,重要的它对应的路径一定要正确。

 

      如果没有PL/SQL,那就用命令创建吧:

      输入命令create directory (自己随便起个名字,我们这里的名字是DUMP) as '具体路径'

 

 

logfile=import.log  log文件 不解释

 

DUMPFILE=tbzh_data-bak.dmp  dmp文件

 

REMAP_SCHEMA=tbzh_data:tbzh_xxx  从哪个用户导出的,要导入到哪个用户中去  (很恶心的东西,这个居然也要指明一下,易用性太烂!)

 

REMAP_TABLESPACE=hrdb:tbzh  从哪个表空间导出的,要导入到哪个表空间中去 (同上)

 

这是经过实验,能成功导入的语句。

感谢网上很多朋友写的技术贴,给我很大帮助。

也鄙视网上很多“技术贴”:自己没有试过好不好用就乱转乱复制,你明白了吗?你让别人能明白吗?……虚妄啊虚妄

 

 

-----------------------给力的昏割线---------------------------------

 

增加:关于从dmp文件中导入指定表的语法

 

在末尾加入 tbales=c_1,c_2 ……

 

其中c_1和c_2都是表名

 

通过这个命令,可以直接从dmp文件中抽取出我们需要的表导出

你可能感兴趣的:(SQL)