前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个跨平台数据迁移的方案优化

一个跨平台数据迁移的方案优化

作者头像
jeanron100
发布2018-03-21 16:53:32
1.2K0
发布2018-03-21 16:53:32
举报

如果有一套环境,业务优先级很高,服务器的服役时间比我工作时间都长,现在需要迁移到X86平台,而且经过评估,如果能够升级数据库的软件版本,可以使用到更多的特性和功能。这套环境的数据量大概是800G,停机维护时间在2个小时的样子,对于很多公司来说,尽可能缩短维护窗口时间,提前起服就意味着有更多的收入,所以2个小时如果能够再缩短一些的话,就太好了,这样一个需求该怎么办?

这里我刻意可以弱化了数据库类型,其实这个需求具有一定的普适性,都可以参考借鉴。

而另一方面,我暂且按照Oracle为例来说明,过于笼统,可操作性,实践性不强,实际意义会打折扣。

这个需求是一个硬骨头,前前后后几代DBA也是前仆后继,总算到了非迁不可的地步了。而且因为环境的限制,有一些硬伤,比如主库承担不了太大的压力,网络条件不佳等。所以事儿真不好做,方案也不好来定。

这里我建议大家先熟悉一下整个数据库的情况,数据的分布情况之后再结合一些可行方案来得到一个最合适的方案。

在梳理了初步的方案之后,在这个基础上再细化了数据的分布情况,我想到了一种相对可控的方案。

这个库磁盘空间占用有800G,但是不是800G的纯数据,还有相当一部分是索引的消耗,经过分析,这个环境90%的数据在属主用户上,而索引占据了近40%的空间,这样一来实际的数据空间也就在50%左右,最后的10%的数据是一些数据字典信息,补充辅助的一些数据信息。

所以这样一来我们可以把数据分为三类,然后给出相应的解决方案:

  1. 索引段数据,索引段的数据其实可以提前进行准备,能够大大减少迁移过程中的资源消耗,整个过程中不需要同步,自适应即可。
  2. 数据字典和其它信息,这部分数据都是数据字典,权限信息,少量的辅助数据等,经过评估这部分数据一次同步后,就不需要反复同步了。
  3. 数据段,这部分数据占用空间400G左右,这个是迁移的关键所在。这个数据显然是需要持续同步的。

这样一来800G的迁移我们可以先简化到400G的规格,听起来难度降低了一半。

我们再来看看这400G数据的情况,大部分的数据都集中在了20个大表里面,占用的空间远超95%以上。而一些基础的表数据大概只占用了5%的比例。

通过这些信息,我们可以设想400G的数据迁移,大部分数据在20个表里面,那这个事情可不可以这么做:

20个大表的数据通过持续的同步来满足,而其他表的数据则不需要持续同步,在迁移的时候直接导出导入即可。

而且更关键的是20个表里面,70%的数据集中在了3个表上,剩下的30%的信息集中在了17个表上。

我们可以做成哟䘺弹性的方案,比如使用Oracle的物化视图prebuilt属性,因为涉及的表很少,直接物化视图增量刷新即可。

而3个大表的数据量实在太大,这部分信息就可以通过OGG来逻辑同步。

有的同学可能会问都用物化视图增量刷新得了,这样一来3个大表的数据同步,数据库层面没有可以设定的阈值,控制措施,比如限定流量情况等。所以3个大表是不建议物化视图增量刷新来操作的。

而那17个表相对来说数据量较大,几百MB其实还可以接受的,使用增量刷新就可以。

或者有的同学说,干脆都使用OGG同步得了,这个在目前的考虑方案中也是可行的。无非就是基础的配置上需要提前准备调试。

遮掩下来,整个的数据迁移其实绝大部分工作都可以提前安排好,到了迁移的时候,只是把5%的数据重新同步即可。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档