声明:本文是参考secooler的《同一数据库实例不同用户间数据迁移复制——NETWORK_LINK参数》(http://space.itpub.net/519536/viewspace-631571)而成,特此感谢!
在实际开发和运维中,我们经常遇到这样的需求:把一个schema、一个tablespace或者某些数据表的结构和内容转移到另一个数据schema、tablespace或者另一个实例上。
实现这种需求的方法有很多。比较常用的就是使用exp/expdp工具将指定数据源的数据导出,成.dmp格式文件。之后指向目标数据源,利用imp/impdp工具导入。本文介绍一种方式,使用impdp工具的network_link参数,实现数据在同实例或者异实例之间的灵活的快速复制。
Exp/imp工具是Oracle早期(Oracle Release 5)推出的一种数据导出导入工具,因其简单实用的优点,一直具有很强的生命力。但是随着海量数据时代的到来,以及Oracle新特性的不断引入,exp/imp工具的不适应性逐渐显现。于是,Oracle10g中,推出了了数据泵(Data Dump)expdp/impdp组件,作为新一代数据管理组件。
总的来说,数据泵Data Dump组件具有如下的特点:
ü相对于前一代的exp/imp工具,Data Dump具有更好的性能和可管理特性;
üData Dump是一个服务端工具,而不是在Oracle客户端;
ü具有导入导出作业中断/重新开始的控制功能;
ü支持网络network工作模式;
ü可以在作业中断后重新启动;
ü操作对象范围更加灵活;
ü提供了多种方式调用的API组织;
回到本文要实现的任务,首先我们进行环境准备和查看。当前系统为Oracle 11gR2环境。
//创建一个实验Tablespace
SQL> create tablespace test datafile '/u01/oradata/WILSON/datafile/test.dbf' size 100m extent management local
2uniform. size 1m;
Tablespace created
SQL> select * from v$tablespace;
TS# NAMEINCLUDED_IN_DATABASE_BACKUP
------------------------------ --------------------------- ------- ------------ -----------------
0 SYSTEMYES
1 SYSAUXYES
2 UNDOTBS1YES
4 USERSYES
10 TESTYES</