当前位置:  数据库>oracle

exp/expdp传输表空间和rman convert实现大数据量快速迁移

    来源: 互联网  发布时间:2017-04-27

    本文导语: 将Oracle数据库中某个用户迁移到另外一个库上,迁移的数据量大小约 120GB 。如果采用 expdp 导出的话时间会很长,再加上导出的 DMP 文件拷贝和 impdp 导入数据的时间,不能满足要求。 这里采用 RMAN 的 CONVERT 功能和 exp/expdp 的 transp...

将Oracle数据库中某个用户迁移到另外一个库上,迁移的数据量大小约 120GB 。如果采用 expdp 导出的话时间会很长,再加上导出的 DMP 文件拷贝和 impdp 导入数据的时间,不能满足要求。

这里采用 RMAN 的 CONVERT 功能和 exp/expdp 的 transport_tablespace 的功能。前者将用户所在的表空间的数据文件从一个数据库所在的系统平台中拷贝到另外一个数据库系统上,后者将表空间对应的 metadata 数据拷贝出来。

测试过程虽然顺利,但最后想到一个问题, rman 中的 catalog 记录的 copy 的文件已经被数据库实例占用的情况下,该记录如何删除掉?

后来想到 rman convert 方法,它将文件系统文件拷贝到 ASM 磁盘组,不在 catalog 中留记录。同时,这个方法免去了文件名称修改的操作,更简洁高效。

使用 convert 可以实现跨平台的数据迁移,这点在环境复杂的项目中非常有用。

首先,介绍一下环境。

源库是 RedHat linux as 5 ,单数据库实例,文件系统格式保存数据文件,数据库版本为 10.2.0.4 。

目标库是 redhat linux as 5 ,两节点的 RAC , ASM 格式保存数据文件,数据库版本为 10.2.0.4 。

可以使用 SELECT * FROM V$TRANSPORTABLE_PLATFORM; 检查这个版本上的表空间是否支持传输。结果当然是支持的。

其次,了解迁移的表空间和数据对象。

根据 dba_segments 查询到用户使用的哪些表空间,好决定要迁移的表空间。

在表空间确定了以后,如这里是 gtja 。需要再根据表空间的 segment 都是哪些用户,如果不仅仅是要迁移的用户,还要将新的用户也找出来。

在目标库上提前将这些用户创建好。

这是因为我们采用的是表空间传输迁移数据,所以难免会有多的对象被迁移。根据实际情况权衡,决定是清理源头还是全部迁移。

表空间的 segment 的类型需要先分析一下。对于分区表、 IOT 表、 XMLType 对象等等不常见的,要先想想能不能用它迁移,这是第一点。

还有两点:一,目标库和源库的字符集要一致,否则请测试该方案;二、目标库不能有同名的表空间。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.lang类strictmath的类成员方法: exp定义及介绍
  • oracle11gR2使用exp导出命令时报EXP-00011错误的解决方法
  • java命名空间java.lang类math的类成员方法: exp定义及介绍
  • shell执行exp问题
  • 请问怎样才能将 String curOp=exp.indexOf(i) 的右边转化成String?
  • 请教:Linux下编译c代码,运行程序时出现undefined symbol exp
  • Oracle数据库EXP/IMP版本的支持列表集合[图文]
  • Oracle exp 导出用户对象
  • Oracle10201 RAC升级到10204后导出数据时报EXP-00056错误
  • 用crontabl自动执行exp为何出错?
  • Oracle 管道 解决Exp/Imp大量数据处理问题
  • Oracle 数据库导出(exp)导入(imp)说明
  • ORACLE EXP不能导出空表的原因分析及解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,