ORACLE传输表空间的总结

有时我们需要把比较大的数据进行跨平台(10G支持跨平台)的迁移,使用EXP/IMP等方法很慢,可能通过传输表空间快速安全的实现。此操作需要在SYSDBA的权限下进行,具体步骤如下:

   1.检查所要迁移的表空间是否自包含就是检测是否符合传输表空间的基本条件)

         exec sys.dbms_tts.transport_set_check('tablespace_name',true);

         select * from sys.transport_set_violations;

         如果无记录返回,则说明符合传输表空间的条件,如果有记录返回则不符合

   2.设置所要传输表空间为只读:

         alter tablespace tablespace_name read only;

   3.使用exp工具导出所要传输表空间的元数据(metadata)

         exp userid=\'sys/lclsys2008 as sysdba\' file=/opt/test.dmp log=/opt/test.log transport_tablespace=y tablespaces=tablespace_name

         注意:这里使用SYSDBA时需要转义字符,在LINUX下用\',WINDOWS下使用单引号就可以

   4.使用RMAN转换所要传输表空间的数据文件头为目标系统文件

         登陆RMAN: connect target /

                 rman>convert tablespace "TABLESPACE_NAME" to platform. 'Linux IA (32-bit)' format 'D:\xxx.dbf'

         注意:TABLESPACE_NAME为传输表空间的名称,需要使用双引号且大写,Linux IA (32-bit)为目标平台的名称,可以在目标平台数据库中通过select platform_name form. v$database来查询。

   5.复制表空间转换后的数据文件及导出文件到目标平台

   6.使用IMP工具加载数据库文件到目标平台:

      imp userid=\'sys/ad as sysdba\' file=expdat.dmp transport_tablespace=y datafiles=('D:\xx.dbf') tablespaces=tablespace_name

      注意在使用 IMP EXP 时尽量使用相同的版本 , 以避免操作失败。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/110321/viewspace-618258/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/110321/viewspace-618258/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值