首页 >> 大全

按图索骥,再谈数据库迁移之路

2023-12-12 大全 24 作者:考证青年

数据迁移,是个老生常谈的问题,之前也曾写过一篇文章。近期,针对这一课题,自己有了些新的思考,下面将具体展开谈谈。在这之前,我先谈谈数据库迁移的现实需求。这也算是目前行业发展的一个小总结。

1. 背景:迁移之源,多变之秋

人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

❖ 数据规模大幅增加

近些年来,信息数据呈快速增长态势。如下图所示,全球数据量总和,预计将从 2018 年的 33ZB 增至 2025年的 175ZB。国内数据体量在未来 7年将实现复合增速 30%以上的快速增长,并在 2025年成为与欧洲、中东、非洲、亚太和美国等地区相比体量最大的区域。数据的爆发式增长,导致对数据存储容量、数据计算需求有个更好的要求,这也催生企业在基础设施层面不断革新,进而不断推动数据库向前进一步发展。

从数据库市场来看,也验证了这一趋势。整体市场呈现稳定的发展趋势,最近的数据表明,国内的数据库市场已经达到200亿规模。

开源方案,大行其道

开源数据库,其源代码具备全球共享、免费等特点,开发者可在其源码中修改或使用。在近一、二十年来,越来越多的企业将开源方案作为构建底层支持的可选答案。特别是随着互联网的兴起,大量互联网企业选择使用了开源数据库产品,也加速这些产品的成熟与发展。这其中MySQL、、 和 Redis 是当前开源数据库最为重要的参与者。

❖ 数据上云,大势所趋

从2017至 2018年,整个数据库市场增长了 18.4%,其中云数据库增长贡献 68%。以AWS、、为代表的云厂商,取得了快速发展,极大地重塑了全球供应商格局。国内互联网科技巨头,纷纷布局数据库产业,借力云计算实现数据库等基础软件领域的迭代与超越。如下图的数据库规模排名,云数据库厂商均取得不俗的增长,最新数据则更是如此。甚至有机构预测,今明两年从数据库部署形态上看,云部署数据库会超过传统部署方式。

❖ 国产化趋势明显

正如下图所示,国内数据库市场仍然为欧美垄断,但国产化趋势已非常明显。以国产自研或开源定制路线的厂商层出不求,从最新的调查结果来看,已经有130+的国产数据库厂商初选。

从一叶扁舟到百舸争流,传统国产数据库历经长时间艰难探索,已逐步崭露头角。国外大厂长期垄断国内数据库市场。、IBM和 等老牌厂商凭借先发优势在市场份额中占据了有利地位。国产数据库起步较晚,但潜力巨大。正如下图可见,国产数据库占比正不断增加。

❖ 总结:多种变化,驱动迁移

综上所述,从数据规模体量的增大,到开源商业的变化,再到云化趋势明显、国产化趋势加剧;而这些变化都带来同一个诉求,那就是数据库迁移。展开来说,是如何完成异构数据库迁移?完成体系架构完全不同的数据库之间的迁移(例如从单机到分布式)?完成从线下到云上的迁移?完成在线的、不终端业务的迁移?等等。诸多上述问题,对迁移提出了非常高的要求。本文下面尝试从迁移的多个阶段来阐述,需要哪些能力才能完成这一过程。

2. 数据库迁移之路

人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

在实际的迁移中,是一个比较复杂的过程,可根据阶段做个拆解。

1).迁移评估阶段

此阶段是完成迁移前的评估,为后续迁移改造、迁移过程做好铺垫工作

❖ 数据库画像

数据库画像结果,可为后续选型评估、架构规划提供依据。

应用画像

应用画像结果,为后面应用改造做好铺垫。

❖ 风险评估

针对上面收集的数据库、应用画像信息,针对重点风险点做出评估。

❖ 选型建议

根据上面收集信息及风险评估内容,给出选型的建议。这里存在几个难点,一个是多目标数据库的基础能力抽象,一个是两者的适配评估。功能上包括两部分:

2).迁移改造阶段

❖ 对象改造

这一阶段主要是通过结构映射及不兼容提示,来减少改造工作量。

❖ 语句改造

这一阶段主要通过语句改写,减少改造工作量;同时提供增强功能,满足语句改造后的测试等需求。

❖ 应用改造

此处应用是指数据内置的计算能力(如存储过程等)。这一阶段主要是通过逻辑改写,减少人工工作量。在实现上,一般建议使用外部程序逻辑(如java)进行处理,而不是改造为目标端内部计算应用。原因是尽量减少数据库耦合。此处,存在较多难点,且需要人工检查改造后的语义是否正确。

3).迁移数据阶段

❖ 全量/增量数据迁移

完成异构数据库间的数据迁移工作。主要难点是效率、准确性。

❖ 数据对比

见后面说明

4).在线运行阶段

❖ 数据同步

在线运行时,需提供数据库端的异构同步能力,满足业务随时回迁的需求。

❖ 数据对比

数据对比,是用户对比双线运行的基本要求,需要满足实时对比并兼顾效率。

❖ 数据路由

数据路由,为业务提供统一数据库访问入口,并基于此提供双路控制能力,可做到按流量、按读写、按访问类别(生产、测试)等做数据访问路由。

❖ 基础运维

此部分的能力比较多,本质就是同时提供异构数据库在线同步运维能力。例如包括统一变更、统一导入导出、统一授权、统一审计等。尽量从运维侧角度来看,后面是一套逻辑库。

韩锋频道:

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了