expdp impdp 使用补充说明:11g 导出导入10g 补充,导入用户和导出用户不同的处理

测试了一下上面的11G 10G里面的方式,可以正确导入有两个问题:

1)在导入的时候,IMPDP 里面可以不用加version=xxxx这个参数,只在11gEXPDP里面添加此参数就可以了

impdp userid=system/manager directory=db_bak dumpfile=11g_for_10g logfile=impdp_11g_to_10g schemas=zhtjgct 

2schemas所指定导入的用户,在导入执行之前,事先不用建立好,当然如果你设定了自己的表空间,需要首先建立相关的表空间。测试了下,导入之后使用的默认表空间、临时表空间都和源库里面的一致。如果没有该用户,impdp 会自动建立该用户,如果已经有该用户,impdp 会将DMP文件里面的表添加到该用户里。 

3)如何实现IMP 里面的 fromuser=a1  touser=TEST1 两者不同的情况呢,即从一个用户要导入到另外一个用户里。

Expdp userid=system/manager schemas=a1 directory=db_bak dumpfile=expdp_a1 logfile=expdp_a1.log   

在用impdp导入数据时:

impdp userid=system/manager schemas=test1 directory=db_bak dumpfile=expdp_test1 logfile=expdp_test1.log   

直接在schemas里面设置和expdp 里面的schemas不同的用户,会出现:

ORA-39002: invalid operation

ORA-39165: Schema TEST1 was not found. 

不相信这种功能会无法实现,否则如何替代以前的exp  imp呢?查找其帮助信息,看到了remap_schema这个参数,看来可以实现我们所需的功能,其作用类似于老的imp工具中的fromusertouser参数,impdp中将fromusertouser参数合并成了remap_schema参数

查阅了网上的帖子,通过如下的格式指定:impdp remap_schema=old_schema_name:new_schema_name 

impdp userid=system/manager directory=db_bak dumpfile=expdp_test1 logfile=expdp_test1.log  remap_schema=a1:test1   

test1用户也同样不必事先存在。只要导入时连接的用户有足够的权限,就会使用DUMP文件中的CREATE USERmetadata来创建一个对应的用户的。当然你导入时候userid 要有相应的权限,这里我用的是system 当然没事。 

REMAP_SCHEMA官方文档解释
多个REMAP_SCHEMA 行都可以被指定,但是每个源schema 必须不同. 然而,不同的源schemas可以映射到同一个目标schema. 映射也可以不必100%的完成,因为有些特定 schema 引用, Import不能全能找到. 例如, Import 不能找到那些嵌入到types, views, procedures, and packages体内的schema 引用。

如果你正映射的schema不存在, import操作会创建它, 如果导出文件包含源schema必要的CREATE USER 源数据,并且你具有足够的权限导入的话 

需要好好看下官方手册!还要自己动手做实验!

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7177735/viewspace-710753/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7177735/viewspace-710753/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值