一、exp/imp和expdp/impdp在功能上的区别:
1、把用户usera的对象导入到userb
emp/imp用法:
formuser=usera touser=userb;
empdp/impdp用法:
remap_schema='usera':'userb'
例如:
imp system/password fromuser=usera touser=userb file=back.dmp log=backlog.log;
impdp system/password directory=expdp dumpfile=back.dmp remap_schema='usera':'userb' logfile=backlog.log
2、更改表空间
用exp/imp,想要更改表空间,需要手动处理,如alter table xxx move tablespace_new之类的操作,而是用impdp只要用:
remap_tablespace='tablespace_old' : 'tablespace_new'
3、当制定多个表的时候
exp/imp用法:tables('table1','table2','table3')
expdp/impdp用法:tables='table1','table2','table3'
4、是否要导出数据行
exp rows=y,导出数据行,rows=n不导出数据行
expdp content(all:对象+数据行,data_only:只导出对象,metadata_only:只导出数据的记录)
Oracle10g提出的数据泵技术,在以下几个方面优于exp/imp命令:
1、数据泵工具运行于服务器端,相比客户端的exp/imp其性能更好,并能实现exp/imp的全部功能。
2、通过使用exclude,include,content等参数,数据泵可以为数据及数据对象提供更细微级别的选择性。
3、通过设定数据库版本号,数据泵可以兼容老版本的数据库系统。
4、并行执行。
5、通过estimate_only参数,数据泵可以预估导出作业所需的磁盘空间。
6、支持分布式环境中通过数据库连接实现导入\导出。
7、支持导入时重新映射功能(即将对象导入到新的目标数据文件、架构及表空间等)。
8、支持元数据压缩及数据采样。