云时代,好用的数据迁移方案推荐

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 本文将介绍数据库迁移的步骤以及市面上常见的迁移工具,推荐大家选择能够支持“业务零停机迁移”的工具产品。同时,平台工具(例NineData) 的自动化体验及配套设施(例:数据校验工具、迁移限流、监控告警等)一般较为完善,是比较推荐的选择。

数据库作为企业核心的数据存储引擎,在其提供服务的过程中,经常会因为各种各样的原因需要进行数据的迁移。数据库迁移作为一个古老的话题并不神秘,但因为迁移数据的重要性,以及业务对数据库可用性的高要求,导致数据库迁移的复杂度极高,一般都需要专业工具的协助才能完成。当前 ,市面上也已经提供了各种各样的数据库迁移工具。本文将介绍数据库迁移的步骤以及市面上常见的迁移工具。


一、 为什么要做数据库迁移

数据库在提供服务的过程中,经常需要进行数据迁移,常见的场景包括:


  • 数据库上云迁移,业务上云,要求数据库上云,此时涉及数据库的迁移;
  • 数据库跨云迁移,业务需要跨云迁移时,要求数据库跨云迁移;
  • 数据库版本升级,例如数据库内核发布新版本,需要从旧版本迁移到新版本;
  • 数据库扩容或缩容,例如数据库所在服务器资源不足,需要跨机器迁移数据库以实现数据库扩容;
  • 异构数据库迁移,数据库中的部分业务需要迁移到另外一种更适合的引擎时,涉及的数据库迁移工作。例如从单机数据库迁移到分布式数据库;从关系型数据库迁移到 NoSQL,或,从关系型数据库/ NoSQL 把数据迁移到数据仓库、大数据或数据湖中进行数据分析。

二、 数据库迁移的步骤

不同于应用搬迁,数据库在数据迁移过程中,业务仍然持续写入数据,数据一直处于动态变化的状态,整个迁移过程相对比较复杂。根据是否能支持数据迁移过程中,数据库为业务持续提供读写服务,将迁移方案分为:停机迁移、零停机迁移。为了满足业务服务的高可用及迁移数据的完整性,推荐大家选择能够支持“零停机迁移”的工具产品。


  • 停机迁移,即迁移之前需要停止数据库的写能力,即数据库上层业务不能有写请求,业务停服。然后,在数据库完全静态的情况下,进行数据库迁移。

  • 零停机迁移,即在数据库迁移的过程中,业务仍然继续提供服务,业务不受影响。


在数据库迁移过程,零停机迁移的迁移步骤包括如下几步。而停机迁移,只支持存量历史数据的搬迁。


  • 存量历史数据的搬迁,存量历史数据搬迁主要进行结构定义及数据的迁移。例如对于关系型数据库(例 MySQL、SQLServer 等),结构迁移会进行表结构、视图、存储过程、函数等的定义迁移。

  • 增量更新数据,由于存量历史数据搬迁一般会持续数小时甚至上天,在这期间为了实现数据库可服务,数据库会继续接受业务写入请求。对于这部分新增的数据,也需要迁移到目标数据库,以保证迁移数据的完整性。当然市面上很多工具不提供这个能力,其要求业务完全停止服务 ,保持数据库的完全静态后,再进行数据迁移。

  • 迁移数据对比,在完成数据迁移后,一般都需要校验迁移数据的一致性,避免因为软硬件或人为误操作等原因,出现迁移数据不一致导致业务受影响。

数据库迁移的步骤.png

数据库迁移的步骤


三、 常见的数据库迁移方法

当前市面上主流的数据库迁移工具,主要分为如下几种方案:

常见4种数据迁移方式对比.jpeg

备注:上述评测仅根据当前各个产品的情况得出的结论


1. NineData

官网地址:https://www.ninedata.cloud/

NineData 是玖章算术旗下的多云数据管理平台,它支持数十种常见数据源(例:MySQL、SQLServer、Clickhouse、Kafka等)之间的同异构数据迁移。NineData提供了数据的单向及双向复制。其提供的单向数据复制功能,包括了结构复制、全量数据复制及增量复制能力,基于这几个复制步骤,可以在业务零停机的情况下,完成数据库的无缝迁移。


NineData 作为一个即开即用的SAAS服务,围绕数据迁移功能,也提供了一系列完善的配套服务,包括告警监控、权限管控、迁移限流及数据一致性对比等。其中,数据对比功能非常有特色,其支持所有对象的结构对比及数据对比,同时,为降低对比对数据库的压力影响,还提供了快速对比、对比限流等能力,在对比完成后,其还会提供详细的不一致数据及订正语句。


除了完善的功能外,NineData 的迁移性能也很优秀,用sysbench模型测试了下,它的全量迁移速度高达130MB/s,增量复制速度能达到10万+TPS。


NineData 比较有特色的是:可完全自动化得实现数据库的零停机迁移;提供高效、易用完善的数据一致性对比工具;对云数据库、云主机及IDC自建数据库的支持同样完善。

NineData数据迁移.png

NineData 数据库迁移

NineData配置任务的第一步骤,选择迁移的数据源及迁移的步骤.png

NineData选择迁移的数据源及迁移步骤

图一:配置任务的第一步骤,选择迁移的数据源及迁移的步骤


配置任务的第二步骤,选择复制对象.png

NineData选择复制对象

图二、配置任务的第二步骤,选择复制对象


NineData配置任务的第三步骤,配置映射关系及数据过滤条件.png

NineData配置映射关系及数据过滤条件

图三:配置任务的第三步骤,配置映射关系及数据过滤条件


配置任务的第四步骤,迁移前的前置检查.png

NineData迁移前的前置检查

图四:配置任务的第四步骤,迁移前的前置检查


NineData任务详情及运维界面.png

NineData任务详情及运维界面

图五:任务详情及运维界面


NineData复制任务的数据对比详情.png

NineData复制任务的数据对比详情

图六:复制任务的数据对比详情

NineData复制任务的对比结果,不一致数据的详情.png

NineData复制任务的对比结果

图七:复制任务的对比结果,不一致数据的详情


2. 备份集恢复

一般各个数据库引擎都会提供备份恢复工具,例如MySQL的xtrabackup。借助备份集恢复功能实现数据库迁移的步骤一般如下图所示。整个恢复过程纯依赖手动调度、手工执行。这种恢复方案因依赖数据库本身工具,迁移的完整度很高。但是实现复杂度也比较高,比较容易出错。且恢复工具不提供辅助的诊断运维能力,使用门槛比较高,不是很推荐。


备份恢复迁移方案的特征为:纯手工操作复杂度高且容易出错,迁移的完整性较高,但只适合同网络环境下的同构同版本数据库之间的数据迁移。

备份集恢复.png

备份集恢复


3. 数据导出+数据导入

一般各个数据库引擎都会提供导入导出的工具,例如MySQL的mydumper+myloader。

同时,各大数据库开发工具也会提供数据导出+导入的功能,例如navicat。这种工具只能支持历史存量数据的迁移,不支持增量数据迁移。所以,为了保障迁移数据的完整性,要求业务停机后,再进行数据迁移。


基于数据导出导入的迁移方案的问题是:要求业务停机迁移,业务影响大;只适合小规模数据量情况下的数据迁移。


4. 云厂商数据库迁移工具

云厂商数据库迁移工具,其中以阿里云数据传输DTS为代表。云厂商一般都会提供数据库迁移工具,以支撑数据库上云迁移。云厂商的数据库迁移工具一般也支持结构复制、全量数据复制及增量数据服务,可以实现业务零停机情况下的数据库迁移。同时,云厂商一般也会提供内置的数据校验工具,但一般只支持数据的校验,不提供结构校验能力。云厂商迁移工具一般由数据库团队负责,所以其对云数据库的迁移支持较好,但是对于云主机上自建数据库以及IDC自建数据库支持不好甚至不支持。例如,大部分云厂商迁移工具都不支持自建数据库作为迁移工具的目标数据源。


云厂商迁移工具的特征是:可完全自动化得实现数据库的零停机迁移;对云数据库的支持较完善,基本不支持云主机及IDC自建数据库。


四、 小结

总的来说,数据库作为核心业务支撑,其在数据库搬迁过程中的可用性及搬迁数据的完整性至关重要。为了满足服务高可用及迁移数据的完整性,推荐大家选择能够支持“业务零停机迁移”的工具产品。同时,平台工具(例NineData) 的自动化体验及配套设施(例:数据校验工具、迁移限流、监控告警等)一般较为完善,是比较推荐的选择。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
容灾 安全 大数据
为数据安全而生,阿里云容灾备份方案场景实践解析
数字经济时代,数据正以超出想象的速度快速增长。短短几年,数据量已经从TB级别跃升到PB乃至ZB级别。
4924 0
|
5月前
|
弹性计算 运维 容灾
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(1)
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(1)
182 1
|
5月前
|
弹性计算 运维 容灾
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(2)
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(2)
|
11月前
|
存储 数据库 对象存储
带你读《云存储应用白皮书》之24:1. 数据业务迁移上云方案
带你读《云存储应用白皮书》之24:1. 数据业务迁移上云方案
215 0
|
存储 容灾 安全
降本增效|微财引入阿里云瑶池数据库Serverless备份解决方案,最高可节省50% IT成本
微财也是金融行业首个大规模应用云数据库RDS Serverless的企业。
257 0
降本增效|微财引入阿里云瑶池数据库Serverless备份解决方案,最高可节省50% IT成本
|
容灾 Serverless
《云迁移与云容灾-Serverless架构企业数据备份和迁移》电子版地址
云迁移与云容灾-Serverless架构企业数据备份和迁移
515 0
《云迁移与云容灾-Serverless架构企业数据备份和迁移》电子版地址
|
Serverless
Serverless 方案与传统自建服务方案对比
Serverless 方案与传统自建服务方案对比
110 0
Serverless 方案与传统自建服务方案对比
|
容灾 Cloud Native 数据库
《云迁移与云容灾-云上数据库迁移与云原生容灾》电子版地址
云迁移与云容灾-云上数据库迁移与云原生容灾
59 0
《云迁移与云容灾-云上数据库迁移与云原生容灾》电子版地址
|
容灾
《云迁移与云容灾-基于混合云架构的迁移和灾备》电子版地址
云迁移与云容灾-基于混合云架构的迁移和灾备
134 0
《云迁移与云容灾-基于混合云架构的迁移和灾备》电子版地址
|
SQL 存储 运维
如何运维超大体量的数据库集群?阿里巴巴数据库运维最佳实践
阿里云数据库出席“2021中国数字服务大会”
249 0
如何运维超大体量的数据库集群?阿里巴巴数据库运维最佳实践