今天突然想玩一下Oracle的可传输表空间特性。于是按照Oracle官方文档的说明一步一步跟着做,以下是这些步骤的简易说明。
在做之前首先需要确认源平台和目标平台的字节序是否一致,如果不一致还需要在传输过程中进行相应的转换,以下的步骤适应条件是在字节序一样的情况下进行的。
一.在源库执行自包含检查(确保transport_set_violations字典表中没有任何记录)
exec dbms_tts.transport_set_check('TL_TBS',TRUE);
select * from transport_set_violations;
二.将源库需要传输的表空间置为只读
alter tablespace tl_tbs read only;
三.在源库导出表空间元数据
expdp system/oracle directory=tl dumpfile=tl_tbs.dmp transport_tablespaces=tl_tbs;
四.拷贝数据文件和元数据到目标库
scp source target...
五.将源库的表空间置为可读写
alter tablespace tl_tbs read write;
六.将数据文件和元数据导入目标库
impdp system/oracle directory=tl dumpfile=tl_tbs.dmp transport_datafiles=/home/oracle/tl/tl.dbf
总结:在目标库导入表空间时需要确保该表空间涉及的user在源库端已存在,并且导入的表空间在目标库端不存在,否则会报错。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20801486/viewspace-718012/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20801486/viewspace-718012/