2023-02-01 17:34:18 来源:
数据库在提供服务的过程中,经常需要进行数据迁移,常见的场景包括:
不同于应用搬迁,数据库在数据迁移过程中,业务仍然持续写入数据,数据一直处于动态变化的状态,整个迁移过程相对比较复杂。根据是否能支持数据迁移过程中,数据库为业务持续提供读写服务,将迁移方案分为:停机迁移、零停机迁移。为了满足业务服务的高可用及迁移数据的完整性,推荐大家选择能够支持“零停机迁移”的工具产品。
在数据库迁移过程,零停机迁移的迁移步骤包括如下几步。而停机迁移,只支持存量历史数据的搬迁。
当前市面上主流的数据库迁移工具,主要分为如下几种方案:
1. NineData
官网地址:
https://www.ninedata.cloud/
NineData 是玖章算术旗下的多云数据管理平台,它支持数十种常见数据源(例:MySQL、SQLServer、Clickhouse、Kafka等)之间的同异构数据迁移。NineData提供了数据的单向及双向复制。其提供的单向数据复制功能,包括了结构复制、全量数据复制及增量复制能力,基于这几个复制步骤,可以在业务零停机的情况下,完成数据库的无缝迁移。
NineData 作为一个即开即用的SAAS服务,围绕数据迁移功能,也提供了一系列完善的配套服务,包括告警监控、权限管控、迁移限流及数据一致性对比等。其中,数据对比功能非常有特色,其支持所有对象的结构对比及数据对比,同时,为降低对比对数据库的压力影响,还提供了快速对比、对比限流等能力,在对比完成后,其还会提供详细的不一致数据及订正语句。
除了完善的功能外,NineData 的迁移性能也很优秀,用sysbench模型测试了下,它的全量迁移速度高达130MB/s,增量复制速度能达到10万+TPS。
NineData 比较有特色的是:可完全自动化得实现数据库的零停机迁移;提供高效、易用完善的数据一致性对比工具;对云数据库、云主机及IDC自建数据库的支持同样完善。
图一:配置任务的第一步骤,选择迁移的数据源及迁移的步骤
图二、配置任务的第二步骤,选择复制对象
图三:配置任务的第三步骤,配置映射关系及数据过滤条件
图四:配置任务的第四步骤,迁移前的前置检查
图五:任务详情及运维界面
图六:复制任务的数据对比详情
图七:复制任务的对比结果,不一致数据的详情
2. 备份集恢复
一般各个数据库引擎都会提供备份恢复工具,例如MySQL的xtrabackup。借助备份集恢复功能实现数据库迁移的步骤一般如下图所示。整个恢复过程纯依赖手动调度、手工执行。这种恢复方案因依赖数据库本身工具,迁移的完整度很高。但是实现复杂度也比较高,比较容易出错。且恢复工具不提供辅助的诊断运维能力,使用门槛比较高,不是很推荐。
备份恢复迁移方案的特征为:纯手工操作复杂度高且容易出错,迁移的完整性较高,但只适合同网络环境下的同构同版本数据库之间的数据迁移。
3. 数据导出+数据导入
一般各个数据库引擎都会提供导入导出的工具,例如MySQL的mydumper+myloader。
同时,各大数据库开发工具也会提供数据导出+导入的功能,例如navicat。这种工具只能支持历史存量数据的迁移,不支持增量数据迁移。所以,为了保障迁移数据的完整性,要求业务停机后,再进行数据迁移。
基于数据导出导入的迁移方案的问题是:要求业务停机迁移,业务影响大;只适合小规模数据量情况下的数据迁移。
4. 云厂商数据库迁移工具
云厂商数据库迁移工具,其中以阿里云数据传输DTS为代表。云厂商一般都会提供数据库迁移工具,以支撑数据库上云迁移。云厂商的数据库迁移工具一般也支持结构复制、全量数据复制及增量数据服务,可以实现业务零停机情况下的数据库迁移。同时,云厂商一般也会提供内置的数据校验工具,但一般只支持数据的校验,不提供结构校验能力。云厂商迁移工具一般由数据库团队负责,所以其对云数据库的迁移支持较好,但是对于云主机上自建数据库以及IDC自建数据库支持不好甚至不支持。例如,大部分云厂商迁移工具都不支持自建数据库作为迁移工具的目标数据源。
云厂商迁移工具的特征是:可完全自动化得实现数据库的零停机迁移;对云数据库的支持较完善,基本不支持云主机及IDC自建数据库。
总的来说,数据库作为核心业务支撑,其在数据库搬迁过程中的可用性及搬迁数据的完整性至关重要。为了满足服务高可用及迁移数据的完整性,推荐大家选择能够支持“业务零停机迁移”的工具产品。同时,平台工具(例NineData) 的自动化体验及配套设施(例:数据校验工具、迁移限流、监控告警等)一般较为完善,是比较推荐的选择。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。