Transport tablespace是oracle提供的一种快速的传输大批量数据的功能.利用Oracle服务器自带的EXP和IMP命令可以比较容易的实现这种数据传输.
前提条件:
1. 需要传输的表空间是自包含的,即表空间内所有数据对象的相关联的数据对象(外键,引用等)都在此表空间内.
2. 需要一个拥有SYSDBA权限的用户
3. 目标数据库不存在所要传输的表空间
Oracle会在导出源数据库的时候快速生成一个很小的DMP文件,该文件只记载了导数表空间的相关逻辑存储信息.用户需要将DMP文件和表空间数据文件一同复制到目标数据库上,然后导入DMP文件.Oracle会在导入过程中验证DMP文件上记录的信息,并将表空间挂载到新的数据库上.

示例:
假设项目名称 ABC
源数据库用户 ABC_TRANS
目标数据库用户 ABC_REPT
表空间名称 ABC_REPORT
步骤:
1. 将源数据库的ABC_REPORT表空间设置为只读
    alter tablespace abc_report read only;
2. 用EXP命令导出DMP文件
    exp '/ as sysdba' rows=y transport_tablespace=y tablespaces=abc_report triggers=y constraints=n grants=n file=D:\oracle\product\10.2.0\oradata\orcl\abc_report.dmp log=D:\oracle\product\10.2.0\oradata\orcl\abc_report_exp.log
3. 将数据文件和DMP文件复制到目标数据库上
4. 将表空间挂载到新数据库上,注意
    imp '/ as sysdba' transport_tablespace=y datafiles=('D:\oracle\product\10.2.0\oradata\orcl\ABC_REPORT.DBF') tts_owners=(abc_trans) fromuser=abc_trans touser=abc_rept file=D:\oracle\product\10.2.0\oradata\orcl\abc_report.dmp log=abc_report_imp.log
5. 将表空间设置成读写就大功告成
alter tablespace abc_report read write;

优点: 导入导出时间非常短,如果网速不好,可对DMP文件和数据文件进行压缩后复制
缺点: 初期设计的时候如果有跨表空间引用的对象则无法进行表空间传输.此方法一定要在最初就考虑进数据库设计中.