Transportable Tablespaces
可以使用TTS 特性将表空间从一个数据库copy 到另一个数据库。
使用TTS 移动数据要比export/import 或unload/load 快很多,因为TTS数据的移动仅仅是datafile的一个copy 过程,TTS的Data Pump仅移动表空间对象的metadata.
一个transportabletablespace set 包含表空间的datafiles 和 表空间的metadata。
操作步骤如下:
1. 确认传输表空间的平台是否兼容
在源数据库端
select tp.* from v$transportable_platform tp,v$database d where tp.PLATFORM_NAME = d.PLATFORM_NAME;
在目标数据库端
二者的eddian_format 格式一致不需要转换
2.表空间自包含(独立性)检查
execute dbms_tts.transport_set_check('index_assess',true);
3.在源数据库将表空间设为只读状态
alter tablespace index_assess read only;
4.使用expdp工具生成表空间(集)用其他用户导出
expdp ghsj_jcsj/ghsj2011 directory=DMP_DIRECTORY dumpfile=index_assessmeta.dmp logfile=index_assessmeta.log transport_tablespaces=index_assess transport_full_check=y
5.使用ftp工具分别拷贝表空间(集)和与表空间对应数据文件到相应的目录。
6.将源数据库表空间设为read-write状态。
alter tablespace index_assess read write;
7.在目标数据库创建用户
create user INDEX_ASSESS identified by ghsj2011
8.赋予权限
grant connect,resource to index_assess;
9.在目标数据库使用impdp工具将表空间(集)导入目标数据库,根据需要决定是否需要创建与源数据库
相同的用户,或者在使用impdp是可以使用remap_schema参数。用其他用户导入
impdp ghsj_jcsj/ghsj2011 dumpfile=index_assessmeta.dmp directory=dump_dir transport_datafiles=D:\app\oracle\oradata\ghsjdb\index_assess.dbf logfile=index_assessmeta.log
10.将目标数据库用户的默认表空间修改
alter user index_assess default tablespace index_assess--将默认表空间修改为index_assess
11.将目标数据库的表空间改为读写
alter tablespace index_assess read write;
验证是否成功!