前言
前MongoDB(现Google Cloud)的执行官Kelly Stirman在一次采访中说道:“数据库是目前最棘手的产品之一。更换成本非常高。数据库转换平台被视为所有IT中最危险的提议之一,针对于现有的工作负载,过渡将很慢。”
迁移原因
首先我们需要了解清楚一点,数据库运行好好的,为什么要迁移?这里我们列举了四点。
- 升级到最新版本的数据库软件以提高安全性和合规性。
- 将多个数据库中的数据合并到单个数据库中,以实现合并后的统一数据视图。
- 将现有数据移至新数据库以降低成本,提高性能并实现可伸缩性。
- 从本地数据库迁移到基于云的数据库,以实现更好的可扩展性和更低的成本。
第一类是我们经常做的,比如从Oracle 11g升级到Oracle 12c,MySQL 5.7升级到8.0。
第二类也是我们经常做的,使用debezium、Oracle GoldenGate、Kafka、Otter等迁移各个地市数据进行汇总到汇聚库。实现统一数据视图。
第三类我们也做过,就是把现有的数据库如SQL Server、Oracle、DB2等,迁移至MySQL集群+MyCat数据库中间件实现分库分表,弹性扩展。
第四类我们接触比较少,但这也是今年蓬勃发展的一类
云迁移的崛起
今天我们来探讨一下第四类,今年蓬勃发展的一类,为什么说蓬勃发展,我们先来看看今年一年,国外厂商都做了些什么?
首先是微软,在2020年2月20号的时候推出了Azure Database Migration Service?
在接着看他们使用的方法,其实也很简单,使用了mysqldump导出结构数据,然后导入到他们云上的数据库,在使用他们页面的同步CDC工具实现完全数据加载和增量数据同步。
而在2020年3月5日,MongoDB与合作伙伴Informatica和Hitachi Vantara Pentaho也推出了现代化工具包,帮助企业从Oracle迁移到MongoDB。而Informatica是比较老牌的ETL工具厂商了。
![ffc04e4b576d386d609ff79c088faa8b.png](https://i-blog.csdnimg.cn/blog_migrate/55cd58355437df755b321ce3fbfd936e.png)
而Google也在今年也推出了自己的数据迁移服务。Google使用的是一种无服务的方式。可以协助用户将MySQL、PostgreSQL、SQL Server迁移到Cloud SQL 。
![df69e2cd6d3b2f489fcbd67eda88da00.png](https://i-blog.csdnimg.cn/blog_migrate/e96a26d8284772156f7516b4a790d684.png)
云迁移的印象
今年我也使用了一些云迁移的平台,尽管有这么多平台推出了云迁移。给人的印象主要有以下几点:
- 只需单击几下,即可迅速获得迁移的体验,这种体验感非常棒,尤其是对迁移的难易评估部分,是加分项,它能够有效的帮助我们对迁移整体的一个预览。
- 迁移过程中还自带了监控。这个体验也非常棒,以前我们可能要挂若干个脚本,来回切换看日志。现在直接在平台上展现迁移的速度,迁移了多少行了,还需要多长时间,这些功能都非常友好。
- 数据校验,校验这个平台也自带了,出了数据不一致或者数据乱码等问题咱也可以找平台背锅。
缺点:对于排查错误还需要进一步改进,图形界面掩盖了背后的若干步操作,有时候出现了错误之后,仍然需要大量日志排查。而对于那些云平台可能就需要找Support来排查了,毕竟有可能拿不到操作日志。
云迁移的趋势
最后说下这块的趋势,根据Gartner报告做出了“战略性假设”,即到2022年“所有数据库中的75%将被部署或迁移到云平台。原文在这个链接
如果是这样一个趋势的话,未来会有更多的云迁移平台工具诞生。可能是老牌软件+云厂商重新包装的工具,也可能是直接用现成开源工具整合到迁移平台上。
作为传统的DBA,未来迁移难度肯定将越来越低。工具帮助我们实现了大量的人工评估、检查的操作。而我们要做的有价值的事情就是了解迁移底层实现的原理,这会帮助我们更好的分析问题。