CN115941677B - 一种数据库分表迁移的断点续传方法 - Google Patents
一种数据库分表迁移的断点续传方法 Download PDFInfo
- Publication number
- CN115941677B CN115941677B CN202211189154.0A CN202211189154A CN115941677B CN 115941677 B CN115941677 B CN 115941677B CN 202211189154 A CN202211189154 A CN 202211189154A CN 115941677 B CN115941677 B CN 115941677B
- Authority
- CN
- China
- Prior art keywords
- data
- migration
- database
- segment
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013508 migration Methods 0.000 title claims abstract description 49
- 230000005012 migration Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000005540 biological transmission Effects 0.000 title claims abstract description 12
- 238000004458 analytical method Methods 0.000 claims abstract description 9
- 239000012634 fragment Substances 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 abstract description 8
- 238000004422 calculation algorithm Methods 0.000 abstract description 4
- 230000005856 abnormality Effects 0.000 abstract description 2
- 238000000354 decomposition reaction Methods 0.000 abstract description 2
- 239000000725 suspension Substances 0.000 abstract description 2
- 239000002699 waste material Substances 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库分表迁移的断点续传方法,属于计算机领域,特别是计算机数据库分表迁移方法。本发明方法支持分表到分表的迁移;即在数据的迁移过程涉及到迁移暂停或者异常的情况,可实现在断点的地方续传数据,不需要将已经接收的数据删除或者回滚进行重新的迁移工作。迁移速度快;迁移过程可以保证源数据库的正常读写,保证服务的高可用性,热部署的迁移方式不能中断服务的迁移需求。可同时对多个数据集群中的单表进行迁移,不受数据库存储引擎和存储介质的限制。数据分段的解析合并和解析分解算法可以做到数据的校验和顺序验证,保证数据迁移过程的安全性。支持断点续传,解决了迁移过程的带宽占用高、资源浪费、迁移耗时长等问题。
Description
技术领域
本发明属于计算机领域,特别是计算机数据库分表迁移方法。
背景技术
目前在较大的企业以及国家安全部门的大型服务器和数据库后台中,由于业务的迭代更新速度较快,组织架构调整频繁,导致数据需要在多个、多种不同数据库站点、集群之间进行流动。因此,需要一种新的数据迁移技术来提高数据迁移的效率。
现阶段主要的数据迁移方法目的是在硬件以及存储介质之间实现迁移数据,目前本领域内的数据库迁移技术,主要是关于整个数据库、单一数据库的数据迁移方案,并且不支持断点的续传功能。
发明内容
针对背景技术中数据库迁移是不支持分表迁移,不支持断点的续传的问题,改进设计了本发明方法。
本发明技术方案为一种数据库分表迁移的断点续传方法,该方法包括:
步骤1:将源数据库集群中的各源数据库进行划分,划分为多个数据表,解析源数据库和各数据表的IP地址,解析集群内地址信息,保证数据源服务器的可用性;
步骤2:采用分片数据库读取器对源数据库进行读取,所述分片数据库读取器包括:多个单表读取器,所述单表读取器的数量和划分的数据表的数量相同;针对每个数据表库采用一个单表读取器进行数据读取;将各单表读取器读取的数据进行折构合并,形成待迁移的数据分段,并提交到数据队列中等待写入线程的提取与解析;
其中,单表读取器读取数据表的数据时,首先根据每一个数据表的主键获取主键id的最小值和最大值,并根据最小值和最大值进行解析,按照预设数据段的大小拆分成独立的数据分段,然后进行分段读取;形成带有数据头、数据尾标志的数据分段,数据头中包含该数据分段的地址信息;
步骤3:采用分片数据库表写入器对待迁移的数据分段进行折构读取,所述分片数据库表写入器包括:路径探查器和多个单表写入器,所述单表写入器的数量和单表读取器;首先采用路径探查器对各数据分段中位于数据头部的控制信息进行解析,得到路由地址;根据得到的路由地址发送给对应的单表写入器,由单表写入器在新位置写入对应的源数据库;
其中,单表写入器对收到的数据分段中的数据头和数据为标志进行解析,得到该数据分段的位置信息,根据该位置信息将该数据分段写入新地址中对应的位置,该过程结束后,判断写入过程是否成功;若成功,则给数据源服务器进行确认,其标志位已迁移成功;若不成功,则会记录当前写入的主键id和队列中待写入数据分段唯一标志戳,通过给用户发告警信息提示写入失败。
本发明方法支持分表到分表的迁移;可实现断点的续传功能,即在数据的迁移过程涉及到迁移暂停或者异常的情况,可以实现在断点的地方续传数据,而不需要将已经接收的数据删除或者回滚进行重新的迁移工作。迁移速度快。迁移过程可以保证源数据库的正常读写,保证服务的高可用性,热部署的迁移方式不能中断服务的迁移需求。可同时对多个数据集群中的单表进行迁移,不受数据库存储引擎和存储介质的限制。数据分段的解析合并和解析分解算法可以做到数据的校验和顺序验证,保证数据迁移过程的安全性。支持断点续传,解决了迁移过程的带宽占用高、资源浪费、迁移耗时长等问题。
附图说明
图1为本发明数据迁移方法的示意图。
图2为本发明单表数据读写的示意图。
具体实施方式
本发明核心内容包括:数据分段的控制信息,以及快速路由算法;分库分表数据迁移的设计方案,包括迁移架构和数据析构、合并方法;读数据源、写数据源的结构体信息,包括索引相关信息和断点分段内容。
在一个数据库迁移实例中,所述软件构成部分包括:
1、多个源数据库、目标数据库集群。
2、多个源分片表读取器、目标分片表写入器。
3、源数据分表的数据分段及其多个分段的合并与解析。
4、路径探查器。
分表数据迁移方法,主要流程为:
1、解析源数据库集群以及目标数据库集群的IP地址以及集群内地址信息,并初始化,保证分表数据源服务器的可用性。
2、保证分片数据读取器的可用性,并发查询批量数据,将数据进行解析合并,形成待迁移的数据分段,并提交到数据队列中等待写入线程的提取与解析。
3、分片数据写入器进行计算解析,根据数据分段数据头部分的控制信息解析路由地址,保证每条数据可以准确写入到目的地址的数据库中。
4、将所有解析出来的数据路由到其目的地址的数据库,并提交到其分库的数据队列中,交给其对应的单一数据表写入器进行写入,每次写入的数据量的大小可以根据预迁移数据量的大小进行预设。
数据段的写入过程的断点续传功能实现方法:
1、Mysql、TiDB类似的数据库都支持数据表主键。首先,根据每一个数据表的主键获取主键id的最小值和最大值,并根据最小值和最大值进行解析,按照预设数据段的大小拆分成独立的数据分段;其次,根据数据的分段大小设置,进行读取、析构合并形成带有数据头、数据尾标志的数据分段,并将数据分段按照析构合并的顺序组合成待迁移的数据实体。
2、为源数据库集群中的每一个数据库设置分片数据表读取器。该过程可以交给第三方的数据库中间件进行分配,查询单表中的批量数据,借助分片数据表读取器的预设置算法将需要做迁移的数据进行读取和计算路由目的地址,为数据分段的合并提供条件。
3、分片数据表写入器从线程池中获取预设数量的多线程,进行并发的读取解析数据分段数据,按照合并时设置的数据头、数据尾标志进行解析,形成独立的数据分段。
4、按照目标数据库脚本或者执行驱动形成数据写入命令,进行并发的的写入。该过程结束后,判断写入过程是否成功。若成功则给对应的数据端进行确认,将其标志为迁移成功。
5、在线程池中设置一部分定时线程,保证预设数量的定时线程可以定时查询数据分段池中的已经迁移成功的数据分段位置,以提醒给写入线程进行为迁移数据分段的迁移写入。
通过实验的数据迁移验证,峰值速度:70M/s,迁移量平均每天2.88T,约2亿条数据,平均每条数据大小为15.49Byte。
较为合理的设置参数为:每秒查询源库的速率为500次,每秒全量迁移的行数RPS为2000行,每秒全量迁移的数据量为20M/s。
同步延迟定义为同步到目标库最后一条数据的时间戳,与当前时间戳的差值,单位为毫秒。20ms以内为正常延迟。
Claims (1)
1.一种数据库分表迁移的断点续传方法,该方法包括:
步骤1:将源数据库集群中的各源数据库进行划分,划分为多个数据表,解析源数据库和各数据表的IP地址,解析集群内地址信息,保证数据源服务器的可用性;
步骤2:采用分片数据库读取器对源数据库进行读取,所述分片数据库读取器包括:多个单表读取器,所述单表读取器的数量和划分的数据表的数量相同;针对每个数据表库采用一个单表读取器进行数据读取;将各单表读取器读取的数据进行折构合并,形成待迁移的数据分段,并提交到数据队列中等待写入线程的提取与解析;
其中,单表读取器读取数据表的数据时,首先根据每一个数据表的主键获取主键id的最小值和最大值,并根据最小值和最大值进行解析,按照预设数据段的大小拆分成独立的数据分段,然后进行分段读取;形成带有数据头、数据尾标志的数据分段,数据头中包含该数据分段的地址信息;
步骤3:采用分片数据库表写入器对待迁移的数据分段进行折构读取,所述分片数据库表写入器包括:路径探查器和多个单表写入器,所述单表写入器的数量和单表读取器;首先采用路径探查器对各数据分段中位于数据头部的控制信息进行解析,得到路由地址;根据得到的路由地址发送给对应的单表写入器,由单表写入器在新位置写入对应的源数据库;
其中,单表写入器对收到的数据分段中的数据头和数据为标志进行解析,得到该数据分段的位置信息,根据该位置信息将该数据分段写入新地址中对应的位置,该过程结束后,判断写入过程是否成功;若成功,则给数据源服务器进行确认,其标志位已迁移成功;若不成功,则会记录当前写入的主键id和队列中待写入数据分段唯一标志戳,通过给用户发告警信息提示写入失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211189154.0A CN115941677B (zh) | 2022-09-28 | 2022-09-28 | 一种数据库分表迁移的断点续传方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211189154.0A CN115941677B (zh) | 2022-09-28 | 2022-09-28 | 一种数据库分表迁移的断点续传方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115941677A CN115941677A (zh) | 2023-04-07 |
CN115941677B true CN115941677B (zh) | 2024-03-19 |
Family
ID=86654697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211189154.0A Active CN115941677B (zh) | 2022-09-28 | 2022-09-28 | 一种数据库分表迁移的断点续传方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115941677B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495906A (zh) * | 2011-12-23 | 2012-06-13 | 天津神舟通用数据技术有限公司 | 一种实现断点续传的增量式数据迁移方法 |
CN108280148A (zh) * | 2018-01-02 | 2018-07-13 | 中国民生银行股份有限公司 | 一种数据迁移方法和数据迁移服务器 |
CN113468148A (zh) * | 2021-08-13 | 2021-10-01 | 上海浦东发展银行股份有限公司 | 一种数据库的数据迁移方法、装置、电子设备及其存储介质 |
CN113760862A (zh) * | 2021-01-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种增量数据断点续传方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9973582B2 (en) * | 2009-10-19 | 2018-05-15 | Tritan Software International | Method and apparatus for bi-directional communication and data replication between multiple locations during intermittent connectivity |
US9015676B2 (en) * | 2010-10-29 | 2015-04-21 | International Business Machines Corporation | Varying removal of internal breakpoints during debugging of code |
-
2022
- 2022-09-28 CN CN202211189154.0A patent/CN115941677B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495906A (zh) * | 2011-12-23 | 2012-06-13 | 天津神舟通用数据技术有限公司 | 一种实现断点续传的增量式数据迁移方法 |
CN108280148A (zh) * | 2018-01-02 | 2018-07-13 | 中国民生银行股份有限公司 | 一种数据迁移方法和数据迁移服务器 |
CN113760862A (zh) * | 2021-01-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种增量数据断点续传方法、装置、设备及存储介质 |
CN113468148A (zh) * | 2021-08-13 | 2021-10-01 | 上海浦东发展银行股份有限公司 | 一种数据库的数据迁移方法、装置、电子设备及其存储介质 |
Non-Patent Citations (2)
Title |
---|
《远程数据库多线程断点续传研究与实现》;侯志贞;《信息科技》;20131015(2013年第10期);全文 * |
Mai Xu ; Chen Li ; Yufan Liu ; Xin Deng ; Jiaxin Lu.《A subjective visual quality assessment method of panoramic videos》.《 2017 IEEE International Conference on Multimedia and Expo (ICME)》.2017,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115941677A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5577350B2 (ja) | 効率的なデータ同期化のための方法及びシステム | |
CN108268501B (zh) | 一种在线数据迁移过程中的业务处理方法及装置 | |
WO2017049764A1 (zh) | 数据读写方法及分布式存储系统 | |
CN103744906A (zh) | 一种数据同步系统、方法及装置 | |
US11269956B2 (en) | Systems and methods of managing an index | |
CN105574217B (zh) | 分布式关系型数据库的数据同步方法和装置 | |
WO2020155740A1 (zh) | 信息查询方法、装置、计算机设备及存储介质 | |
US11003540B2 (en) | Method, server, and computer readable medium for index recovery using index redo log | |
WO2021174696A1 (zh) | 数据更新方法、装置、计算机设备及存储介质 | |
US11507277B2 (en) | Key value store using progress verification | |
CN106503020A (zh) | 日志数据处理方法及装置 | |
CN110489092B (zh) | 一种数据库读写分离架构下读取数据延迟问题的解决方法 | |
TWI774643B (zh) | 資料庫操作方法及裝置 | |
CN107665219A (zh) | 一种日志管理方法及装置 | |
CN111291022B (zh) | 一种基于区块链的数据存储系统 | |
CN105528381A (zh) | 数据库数据迁移方法及系统 | |
CN115941677B (zh) | 一种数据库分表迁移的断点续传方法 | |
CN105205162A (zh) | HBase二级索引存储和查询系统及其查询方法 | |
CN106708902A (zh) | 数据库数据迁移方法及系统 | |
CN112764662B (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN106611364B (zh) | 存储碎片整理方法及装置 | |
CN109284276A (zh) | 一种基于大数据架构的数据库加速方法 | |
CN114443654B (zh) | 一种在线修改数据库表空间数据块长度的方法及系统 | |
CN115599790A (zh) | 一种数据存储系统、数据处理方法、电子设备和存储介质 | |
CN105069078A (zh) | 一种处理增量索引合并失败的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |