CN108280148A - 一种数据迁移方法和数据迁移服务器 - Google Patents
一种数据迁移方法和数据迁移服务器 Download PDFInfo
- Publication number
- CN108280148A CN108280148A CN201810002213.6A CN201810002213A CN108280148A CN 108280148 A CN108280148 A CN 108280148A CN 201810002213 A CN201810002213 A CN 201810002213A CN 108280148 A CN108280148 A CN 108280148A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- target database
- written
- migrated
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据迁移方法及数据迁移服务器。所述数据迁移方法包括:接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。根据本发明实施例,在实现数据分库分表迁移的同时,无须设置大量复杂的迁移规则,减少了用户的开发工作和维护工作,降低了数据迁移的成本。
Description
技术领域
本发明实施例数据迁移领域,特别是一种数据迁移方法,以及,一种数据迁移服务器。
背景技术
由于互联网行业的兴起,带动了分布式技术的兴起和快速发展,越来越多的传统行业采用分布式***架构进行数据存储。在分布式***架构中,一个最基本技术,就是对数据进行水平拆分,即分库分表技术。所谓分库分表技术,就是将一张数据表中的数据,通过一定的规则分置在不同的数据库或不同的数据表中。
在实现分库分表时,需要对大量的数据进行迁移,尤其是一些核心的历史数据的迁移。目前,通常是利用一些现有的数据抽取工具实现数据迁移,例如Kettle、Datastage和Informatica等数据处理软件。
然而,在利用上述的数据处理软件进行数据迁移时,因为要将源数据库的数据写入至多个数据库的数据表中,因此,需要设置大量复杂的迁移规则,导致进行数据迁移时需要进行大量的开发工作和维护工作,增加了数据迁移的成本。
因此,现有技术的数据迁移方法存在着数据迁移成本较高的问题。
发明内容
本发明提供了一种数据迁移方法,以及,一种数据迁移服务器,以解决现有技术的数据迁移方法存在着数据迁移成本较高的问题。
为了解决上述技术问题,本发明实施例公开了一种数据迁移方法,应用于数据迁移服务器,所述方法包括:
接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;
根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;
从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述方法还包括:
当所述数据迁移任务集合对应的迁移数据量小于预设阈值时,针对所述数据迁移任务集合配置单个处理线程;
所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
调用所述单个处理线程从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述数据迁移任务集合具有对应的数据分布特征,所述方法还包括:
当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置单个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;
所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用所述队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述方法还包括:
当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征不符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为写入线程;
所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据、并将读取的待迁移数据形成单个数据队列,以及,调用多个写入线程将所述单个数据队列中的待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述数据迁移任务集合具有对应的数据操作量,所述方法还包括:
当所述数据迁移任务集合对应的数据操作量大于预设阈值时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;
所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用多个队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述待迁移数据包括多个子数据,所述将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
将所述多个子数据批量写入至所述待写入目标数据库标识对应的目标数据库。
可选地,在所述将所述多个子数据批量写入至所述待写入目标数据库标识对应的目标数据库的步骤之后,所述方法还包括:
当接收到所述目标数据库发送的写入异常通知时,从所述多个子数据中提取至少一个子数据;
将所述至少一个子数据写入至所述待写入目标数据库标识对应的目标数据库,并判断所述至少一个子数据是否成功写入;
若是,则返回所述从所述多个子数据中提取至少一个子数据的步骤;
若否,则针对所述至少一个子数据添加写入失败标识。
可选地,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述方法还包括:
当接收到数据断点迁移任务时,查找所述多个数据表中的最大数据标识值,作为目标数据断点值;
根据所述目标数据断点值执行断点续传迁移处理。
可选地,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述方法还包括:
当接收到数据断点迁移任务时,在所述多个数据表中分别查找其最大数据标识值,作为多个候选数据断点值;
在所述多个候选数据断点值,查找最小候选数据断点值,作为目标数据断点值;
根据所述目标数据断点值执行断点续传迁移处理。
为了解决上述技术问题,本发明实施例还公开了一种数据迁移服务器,所述数据迁移服务器包括:
任务接收模块,用于接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;
标识确定模块,用于根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;
数据迁移模块,用于从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
根据本发明实施例,通过设定数据分布信息,并根据数据分布信息确定迁移数据在多个目标数据库以及多个数据表中的分布位置,在将源数据库的数据迁移至多个数据库的数据表时,在实现数据分库分表迁移的同时,无须设置大量复杂的迁移规则,减少了用户的开发工作和维护工作,降低了数据迁移的成本。
附图说明
图1是本发明实施例一提供的数据迁移方法的流程图;
图2是本发明实施例的数据迁移服务器集群的结构示意图;
图3是本发明实施例的一个数据迁移实例的数据流向示意图;
图4是本发明实施例的另一个数据迁移实例的数据流向示意图;
图5是本发明实施例二提供的数据迁移方法的流程图;
图6是本发明实施例的并行迁移策略的示意图;
图7是本发明实施例的异步Fair迁移策略的示意图;
图8是本发明实施例的异步Crazy迁移策略的示意图;
图9是本发明实施例的异步Crazy迁移策略的示意图;
图10是本发明实施例的一种断点迁移方法的示意图;
图11是本发明实施例的另一种断点迁移方法的示意图;
图12是本发明实施例三提供的数据迁移服务器的结构框图;
图13是本发明实施例四提供的数据迁移服务器的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1是本发明实施例一提供的数据迁移方法的流程图,该方法应用于数据迁移服务器,所述数据迁移服务器配置有多个处理线程,该方法具体可以包括如下步骤:
步骤110,接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息。
首先需要说明的是,可以设置一个数据迁移服务器,由该数据迁移服务器执行本发明实施例的数据迁移方法。在实际应用中,数据迁移服务器可以有多个,由多个数据迁移服务器组成一个数据迁移服务器集群。
图2是本发明实施例的数据迁移服务器集群的结构示意图。从图中可见,数据迁移服务器集群可以包括多个数据迁移服务器,每个数据迁移服务器可以分别与至少一个源数据库和至少一个目标数据库进行数据交互。在将源数据库的数据迁移至目标数据库时,可以根据具体的数据迁移任务,从其中一个或多个源数据库读取数据,然后将读取的数据批量写入至其中一个或多个目标数据库中。此外,针对数据迁移服务器集群,还可以设置一个迁移资源库,用于配置各个数据迁移服务器的***配置,如迁移任务集合信息、执行日志等。
在具体实现中,用户可以提交一个数据迁移作业至数据迁移服务器。其中,一个数据迁移作业可以包含有个多个数据迁移任务,从而形成一个数据迁移任务集合。由此,数据迁移服务器可以接收到数据迁移任务集合。
数据迁移任务集合中的各个数据迁移任务,均可以携带有用户定义的源数据库标识,目标数据库标识和数据分布信息。其中,源数据库标识具有对应的源数据库,目标数据库标识具有对应的目标数据库。
此外,数据库中的数据是基于数据表的方式进行分类存储,每个数据库中,可以具有一张或多张的数据表。因此,每个数据迁移作业除了包括数据库的标识,还可以包括数据表的标识,用于定位数据所在的存储位置。
其中,数据分布信息用于指示如何划分源数据库中某个数据表的多个数据,以及,划分后的各个数据所要写入目标数据库中的某个数据表。
步骤120,根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识。
具体实现中,根据数据分布信息,可以确定一个目标数据库标识。例如,当前接收的数据迁移任务集合中,其中一个数据迁移任务携带的目标数据库标识包括ds1、ds2、ds3和ds4,其中,目标数据库ds1、ds2、ds3和ds4分别具有2个数据表。数据分布信息为[2、2、2、2],表示当前需要将源数据库的多个数据,迁移至4个目标数据库的8个数据表中,而且,当前需要写入的8个数据表平均分布在4个不同的待写入目标数据库中。因此,可以确定目标数据库标识包括ds1、ds2、ds3和ds4均为上述的待写入目标数据库标识。
步骤130,从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
具体实现中,可以调用数据迁移服务器的一个或多个处理线程,将源数据库中的待迁移数据,由处理线程读取并写入至待写入目标数据库标识对应的目标数据库中。
在调用处理线程进行数据迁移时,可以采用多种不同的迁移策略。
例如,同步并行迁移策略,即,针对数据迁移任务集合配置单个处理线程,由该单个处理线程处理整个数据迁移任务集合,该单个处理线程负责从源数据库读取数据,同时负责将读取的数据同步写入目标数据库,实现对数据的同步迁移。如果有多个数据迁移任务集合,则分别由多个单处理线程处理多个数据迁移任务集合,实现对数据的并行迁移。
又例如,异步Fair迁移策略,即,针对数据迁移任务集合配置多个处理线程,由单个处理线程作为读取线程,从源数据库中读取数据,由单个处理线程作为队列分配线程,将读取的数据分配至某一数据队列中,由多个处理线程作为写入线程,将与写入线程对应的数据队列中的数据,依次写入目标数据库中。
又例如,异步Crazy迁移策略,即,针对数据迁移任务集合配置多个处理线程,由单个处理线程作为读取线程,从源数据库中读取数据,并将读取的数据形成单个数据队列,由多个处理线程作为写入线程,将数据队列中的数据写入目标数据库中。
又例如,异步Cooperation迁移策略,即,针对数据迁移任务集合配置多个处理线程,由单个处理线程作为读取线程,从源数据库中读取数据,由多个处理线程作为多个队列分配线程,多个队列分配线程将读取的数据分配至某一数据队列中,由多个处理线程作为写入线程,将与写入线程对应的数据队列中的数据写入目标数据库中。
在实际应用中,用户可以根据迁移数据量选定其中一种数据迁移策略,按照选定的数据迁移策略进行数据迁移。其中,不同的数据迁移策略适用于不同迁移场景的数据迁移,例如,同步并行迁移策略适用于迁移数据量不是特别大,迁移逻辑相对简单的数据迁移场景;而异步平等迁移策略适用于迁移数据量特别大、数据分布比较均匀的数据迁移场景。当然,本领域技术人员可以根据不同的数据迁移场景采用适配的数据迁移策略,本发明实施例对此不作限制。
为了便于本领域技术人员理解本发明实施例的数据迁移方法,以下将结合图3至图4的具体示例进行说明。
图3是本发明实施例的一个数据迁移实例的数据流向示意图。从图中可见,源数据库中存在有一张包含日志数据的数据表src_log,其中包含有8条日志数据,当前要将8条日志数据迁移至目标数据库ds1至ds4。其中,目标数据库ds1至ds4,每个数据库均具有两张数据表,依次命名为tar_log_00至tar_log_07。在迁移数据时,向数据迁移服务器提交数据迁移任务集合,数据迁移任务集合包含有多个数据迁移任务,其中一个数据迁移任务中,携带有目标数据库标识ds1至ds4,以及数据分布信息[2、2、2、2],因此,可以确定目标数据库ds1至ds4均为当前需要写入数据的目标数据库,而且,当前需要写入的8个数据表平均分布在4个不同的目标数据库中。因此,数据迁移服务器可以数据表src_log的8条日志数据,分别迁移至数据表tar_log_00至tar_log_07该8个数据表中。
图4是本发明实施例的另一个数据迁移实例的数据流向示意图。从图中可见,源数据库中存在有一张包含产品数据的数据表src_product,其中包含有5条产品信息数据,当前要将5条产品信息数据迁移至目标数据ds1和ds2。在迁移数据时,向数据迁移服务器提交数据迁移任务集合,数据迁移任务集合包含产品名称迁移任务、产品价格迁移任务和产品库存迁移任务。
在产品名称信息迁移任务中,其目标数据库标识为ds1,数据分布信息为[1],因此,可以确定目标数据库ds1为当前需要写入数据的目标数据库,并将数据表src_product中各条数据的id以及对应的产品名称数据,迁移至目标数据库ds1的数据表tar_product中。
在产品价格信息迁移任务中,其目标数据库标识为ds1,数据分布信息为[1],因此,将数据表src_product中各条数据的id以及对应的产品价格数据,迁移至目标数据库ds1的数据表tar_price中。
在产品库存信息迁移任务中,其目标数据库标识为ds1和ds2,数据分布信息为[1、3],表明将数据表src_product中各条数据的id以及对应的产品库存数据,分别写入至目标数据库ds1的数据表tar_stock_1000中,以及,写入至目标数据库ds1的三张数据表tar_stock_2000、tar_stock_5000和tar_stock_now中。
根据本发明实施例,通过设定数据分布信息,并根据数据分布信息确定迁移数据在多个目标数据库以及多个数据表中的分布位置,在将源数据库的数据迁移至多个数据库的数据表时,在实现数据分库分表迁移的同时,无须设置大量复杂的迁移规则,减少了用户的开发工作和维护工作,降低了数据迁移的成本。
实施例二
图5是本发明实施例二提供的数据迁移方法的流程图,该方法应用于数据迁移服务器,所述数据迁移服务器配置有多个处理线程,该方法具体可以包括如下步骤:
步骤210,接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息。
步骤220,根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识。
步骤230,从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述方法可以还包括:
当所述数据迁移任务集合对应的迁移数据量小于预设阈值时,针对所述数据迁移任务集合配置单个处理线程;
所述步骤230,包括:
调用所述单个处理线程从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
数据迁移服务器可以具有多个处理线程,并根据当前数据迁移任务集合所要处理的迁移数据量,进行处理线程的配置。
具体实现中,可以将数据迁移任务集合对应的迁移数据量与预设阈值进行比较。若迁移数据量小于预设阈值,可以针对数据迁移任务集合配置单个处理线程。
在进行数据迁移时,调用该单个处理线程,一边从源数据库中读取待迁移数据,一边将读取的待迁移数据写入目标数据库的各个数据表中,读取数据和写入数据由单线程同步进行。如果同时存在有多个数据迁移任务集合,则由多个处理线程分别并行地处理该多个数据迁移任务集合,从而达到同步并行迁移数据的效果。
上述的数据迁移方法为同步并行迁移策略,适用于迁移数据量不是特别大,而且迁移逻辑相对简单的迁移任务。
图6是本发明实施例的并行迁移策略的示意图。从图中可见,迁移数据服务器接收到多个数据迁移作业Job,包括迁移作业_1、迁移作业_2、迁移作业_3和迁移作业_4。其中,每个数据迁移作业Job可以包括多个数据迁移任务TargetTask,即,一个数据迁移作业为一个数据迁移任务集合。
每个数据迁移作业Job配置有一个处理线程,该处理线程从源数据库中读取数据,同时将读取的数据写入至目标数据库中的一个或多个数据表。多个数据迁移作业Job,则并行地由所配置的一个处理线程执行数据迁移。
可选地,所述数据迁移任务集合具有对应的数据分布特征,所述方法还包括:
当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置单个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;
所述步骤230,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用所述队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。
数据迁移任务集合可以具有数据分布特征,即所要迁移的数据在各个目标数据库以及各个数据表中的分布情况,可以结合数据迁移任务集合的迁移数据量和数据分布特征,进行处理线程的配置。
具体实现中,可以将数据迁移任务集合对应的迁移数据量与预设阈值进行比较,同时,将数据迁移任务集合对应的数据分布特征与预设分布特征进行比较。若迁移数据量大于预设阈值,而且,数据分布特征与预设分布特征匹配,则可以针对所述数据迁移任务集合配置单个处理线程,作为读取线程,以及,配置单个处理线程,作为队列分配线程,以及,配置多个处理线程,作为写入线程。
在进行数据迁移时,调用单个的读取线程,从源数据库中读取待迁移数据,以及,调用单个队列分配线程,将读取的待迁移数据分配至多个数据队列,调用多个写入线程,将与写入线程对应的数据队列中的待迁移数据,依次写入目标数据库的各个数据表中。队列分配线程会均等地将数据分配至多个数据队列,每个数据队列中待迁移的数据量均等,而每个写入线程仅负责将所对应的一个数据队列中的数据写入,因此,每个写入线程所负责写入的数据量是均等的。
上述的数据迁移方法为异步Fair迁移策略,适用于迁移数据量较大、而各个目标数据库所要写入数据量均等的迁移任务。
图7是本发明实施例的异步Fair迁移策略的示意图。从图中可见,迁移数据服务器针对一个数据迁移作业Job配置有一个读取线程(read线程),一个队列分配线程(split线程)和四个写入线程(write线程),读取线程从源数据库中读取数据,队列分配线程则将读取的数据分配至四个数据队列(queue)中,四个写入线程则分别将四个数据队列中的数据写入至目标数据库中的一个或多个数据表。
可选地,所述方法还包括:
当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征不符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为写入线程;
所述步骤230,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据、并将读取的待迁移数据形成单个数据队列,以及,调用多个写入线程将所述单个数据队列中的待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
相对于上述的异步Fair迁移策略,若迁移数据量大于预设阈值,但是,数据分布特征与预设分布特征不匹配时,可以针对数据迁移任务集合配置单个处理线程,作为读取线程,以及,配置多个处理线程,作为写入线程。
在进行数据迁移时,调用单个的读取线程,从源数据库中读取待迁移数据,并将读取的待迁移数据形成单个数据队列。同时,调用多个写入线程,将单个数据队列中的待迁移数据,写入目标数据库的各个数据表中。
在上述的数据迁移过程中,没有配置队列分配线程,读取线程作为生产者,写入线程作为消费者,多个写入线程对读取线程生产的数据资源,以抢占消费的方式进行消费,各个写入线程均可以将数据写入至所有数据库的数据表中,即使数据在各个数据表上的分布不均匀,也不会影响各个写入线程的写入处理,避免由于数据不均与或某个写入线程的性能问题导致整体数据写入效率下降的问题。
上述的数据迁移方法为异步Crazy迁移策略,适用于迁移数据量较大,而各个目标数据库所要写入数据量不均等的迁移任务。
图8是本发明实施例的异步Crazy迁移策略的示意图。从图中可见,迁移数据服务器针对一个数据迁移作业Job配置有一个读取线程(read线程)和三个写入线程(write线程),读取线程从源数据库中读取数据,并将读取的数据形成一个数据队列(queue),三个写入线程则以抢占消费的方式将该数据队列中数据写入至目标数据库中的一个或多个数据表。
可选地,所述数据迁移任务集合具有对应的数据操作量,所述方法还包括:
当所述数据迁移任务集合对应的数据操作量大于预设阈值时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;
所述步骤230,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用多个队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。
除了迁移数据量和数据分布特征,数据迁移任务集合还可以具有对应的数据操作量,即执行数据迁移时对数据所要执行操作的数量。可以根据数据迁移任务集合的数据操作量,进行处理线程的配置。
具体实现中,可以将数据迁移任务集合对应的数据操作量与预设阈值进行比较。若数据操作量大于预设阈值,则可以针对数据迁移任务集合配置单个处理线程,作为读取线程,以及,配置多个处理线程,作为队列分配线程,以及,配置多个处理线程,作为写入线程。
在进行数据迁移时,调用单个的读取线程,从源数据库中读取待迁移数据,以及,调用多个队列分配线程,分别将读取的待迁移数据,分配至多个数据队列,以及,调用多个写入线程,将与写入线程对应的数据队列中的待迁移数据,依次写入目标数据库的各个数据表中。
在分配数据至数据队列时,可能涉及到复杂的子查询、计算、拆分等数据操作。在上述的数据迁移过程中,由多个的队列分配线程负责处理数据队列的数据分配,即使存在着复杂的子查询、计算、拆分等数据操作,仍然可以保证数据分配至数据队列的处理速度,避免了单个队列分配线程处理复杂的数据操作速度过慢、导致整个数据迁移效率降低的问题。
上述的数据迁移方法为异步Cooperation迁移策略,适用于主表数据量相对较小、但需要进行复杂的子查询、计算、拆分等数据操作的数据迁移任务。
图9是本发明实施例的异步Crazy迁移策略的示意图。从图中可见,迁移数据服务器针对一个数据迁移作业Job,配置有一个读取线程(read线程),四个队列分配线程(split线程)和两个写入线程(write线程)。读取线程从源数据库中读取数据,并将读取的数据形成一个原始数据队列,四个队列分配线程针对原始数据队列中的数据,进行子查询、计算、拆分等数据操作,并分配至两个目标队列线程,两个写入线程,则分别将所对应的目标数据队列中的数据,写入至目标数据库中的一个或多个数据表。
在实际应用中,用户可以根据迁移数据量、数据分布特征、数据操作量等因素,选定其中一种数据迁移策略,按照选定的数据迁移策略进行数据迁移。从而,用户可以针对数据迁移任务,采用适配的数据迁移策略进行数据迁移,提升了数据迁移的效率。
可选地,所述待迁移数据包括多个子数据,所述将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,可以具体包括:
将所述多个子数据批量写入至所述待写入目标数据库标识对应的目标数据库。
在实际的数据迁移场景中,数据迁移服务器会生成目标数据库的连接,并针对连接生成会话。数据迁移服务器的处理线程从源数据库逐行读取数据(每行数据即为一个子数据),并将读取的数据逐行放入到会话当中,在达到预设的提交数据数量值之后,则进行一次commit的批量提交,将数据批量写入至目标数据库的各个数据表中。
步骤240,当接收到所述目标数据库发送的写入异常通知时,从所述多个子数据中提取至少一个子数据。
步骤250,将所述至少一个子数据写入至所述待写入目标数据库标识对应的目标数据库,并判断所述至少一个子数据是否成功写入。
步骤260,若是,则返回所述从所述多个子数据中提取至少一个子数据的步骤。
步骤270,若否,则针对所述至少一个子数据添加写入失败标识。
在实际的数据迁移场景中,可能会发生目标数据库的写入异常。更具体地,批量写入数据至目标数据库时,数据库层面会报错,例如非空字段***了空值、字段长度超长、主键冲突等报错,目标数据库会相应地发送写入异常通知至数据迁移服务器。因此,在接收到目标数据库发出的写入异常通知时,从待迁移数据的多个子数据中,提取单个子数据,将该单个子数据写入至目标数据库,判断该单个子数据写入数据库是否成功。如果写入成功,则继续写入下一单个子数据,如果写入不成功,则针对该子数据添加写入失败标识。实际应用中,可以另外存储添加有写入失败标识的子数据,以便后续集中将该部分子数据重新写入数据库。
在实际应用中,当数据库层面针对非空字段***了空值、字段长度超长、主键冲突等情况进行报错,数据迁移服务器可以回滚本次批量提交处理,将原本需要批量提交的数据,通过单笔提交的方式进行提交,在单笔提交的过程中查找异常数据,并将异常数据保存到特定的数据库,然后,在下一次提交数据时,恢复为批量提交。
根据本发明实施例,通过在接收到所述目标数据库发送的写入异常通知时,将批量提交数据转换为单个提交数据,在单个提交数据时确定异常数据,利用数据回滚机制避免了在数据迁移时遗漏数据,保证了所有数据均可以完整地迁移至目标数据库,提升了数据迁移的可靠性。
可选地,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述方法还包括:
当接收到数据断点迁移任务时,查找所述多个数据表中的最大数据标识值,作为目标数据断点值;
根据所述目标数据断点值执行断点续传迁移处理。
需要说明的是,在实际的数据迁移场景中,在某个数据迁移任务的执行过程中,可能会发生服务器宕机的情况,导致数据迁移中断,因此,需要进行断点迁移。在进行断点迁移时,要保证在上一次所写入数据的基础上,继续写入后续数据,不能重复写入,也不能遗漏写入。
需要进一步说明的是,每个目标数据库可以包括多个数据表,每个数据表中可以包括多个数据,为了区分说明,将数据表中已经存在的数据,命名为写入数据。其中,写入数据具有数据标识值,该数据标识值用于标识数据在数据表中的位置顺序。例如,写入数据的数据标识值,可以为20130621、20130622等数据ID。
具体实现中,当接收到数据断点迁移任务时,可以针对多个数据表的数据标识值,查找数值最大的数据标识值,将该数据标识值,作为目标数据断点值。然后,根据该目标数据断点值,执行断点续传迁移处理。
例如,查找到数值最大的数据标识值为20130628,因此,可以在待迁移数据中,过滤出数据标识值大于20130628的多个目标待迁移数据,并将该多个目标待迁移数据写入至目标数据库的多个数据表中。
需要说明的是,上述的断点迁移方法适用于基于同步迁移策略的数据迁移方法。在同步迁移策略中,只有一个处理线程负责数据写入数据表,该处理线程按序写入数据时,写入顺序与数据的数据标识值一致,因此,依据数据标识值即可判定数据断点值并执行断点续传迁移处理。
图10是本发明实施例的一种断点迁移方法的示意图。从图中可见,源数据库的某个数据表中,包括有多个数据,其中部分数据的数据ID分别为20130621、20130622、...N。在将源数据库的数据写入至目标数据库的多个数据表时发生异常需要执行数据断点迁移任务,此时,针对目标表_1、目标表_2、目标表_3和目标表_4等多个数据表,查找数值最大的数据ID,得到了目标表_2中的20130628为最大数据ID,确定其为目标数据断点值。根据目标数据断点值20130628,在源数据库中,确定大于目标数据断点值20130628的数据ID为20130629、20130630、...N,过滤出对应的数据,并执行断点续传迁移处理。
根据本发明实施例,通过查找多个数据表中的最大数据标识值,作为目标数据断点值,并根据目标数据断点值执行断点续传迁移处理,在采用同步迁移策略的数据迁移过程中,可以实现数据的断点续传,避免数据丢失。
可选地,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述方法还包括:
当接收到数据断点迁移任务时,在所述多个数据表中分别查找其最大数据标识值,作为多个候选数据断点值;
在所述多个候选数据断点值,查找最小候选数据断点值,作为目标数据断点值;
根据所述目标数据断点值执行断点续传迁移处理。
具体实现中,当接收到数据断点迁移任务时,可以针对各个数据表,查找数值最大的数据标识值,作为候选数据断点值。然后,在多个候选数据断点值中,查找数值最小的候选数据断点值,作为目标数据断点值,根据该目标数据断点值,执行断点续传迁移处理。
需要说明的是,上述的断点迁移方法适用于基于异步迁移策略的数据迁移方法。在异步迁移策略中,有多个处理线程负责数据写入数据表,处理线程按序写入数据时,每个数据表的迁移进度不同,写入顺序与数据的数据标识值并不一致,无法依据数据标识值判定数据断点值。因此,需要先确定各个数据表中的最大数据标识值作为候选数据断点值,然后再在多个候选数据断点值中,查找数值最小的作为目标数据断点值。
图11是本发明实施例的另一种断点迁移方法的示意图。从图中可见,源数据库的某个数据表中,包括有多个数据,其中部分数据的数据ID分别为20130621、20130622、...N。在将源数据库的数据写入至目标数据库的多个数据表时发生异常需要执行数据断点迁移任务,其中,需要将数据ID为20130621、20130625、20130629的数据写入目标表_1,而在写入数据ID为20130621的数据之后发生异常,导致数据ID为20130625和20130629的数据并未写入目标表_1。此时,针对目标表_1、目标表_2、目标表_3和目标表_4等多个数据表,查找数值最大的数据ID,分别为20130621、20130626、20130627和20130628。如果确定数值最大的20130628为目标数据断点值,数据ID为20130625的数据,则不会被执行断点续传迁移,导致数据丢失。因此,需要在数据ID 20130621、20130626、20130627和20130628中,查找数值最小的数据ID,得到20130621为最小的数据ID,因此将20130621作为目标数据断点值。基于目标数据断点值20130621执行断点续传迁移处理,则可以将数据ID为20130625的数据也写入至数据库,避免发生数据丢失。
根据本发明实施例,通过查找多个数据表中的最大数据标识值,作为候选数据断点值,并在多个候选数据断点值中查找查找最小候选数据断点值,作为目标数据断点值,根据该目标数据断点值执行断点续传迁移处理,在采用异步迁移策略的数据迁移过程中,可以实现数据的断点续传,避免数据丢失。
实施例三
图12是本发明实施例三提供的数据迁移服务器的结构框图,所述数据迁移服务器300,可以具体包括以下模块:
任务接收模块310,用于接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;
标识确定模块320,用于根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;
数据迁移模块330,用于从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
根据本发明实施例,通过设定数据分布信息,并根据数据分布信息确定迁移数据在多个目标数据库以及多个数据表中的分布位置,在将源数据库的数据迁移至多个数据库的数据表时,在实现数据分库分表迁移的同时,无须设置大量复杂的迁移规则,减少了用户的开发工作和维护工作,降低了数据迁移的成本。
实施例四
图13是本发明实施例四提供的数据迁移服务器的结构框图,所述数据迁移服务器400,可以具体包括以下模块:
任务接收模块410,用于接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;
标识确定模块420,用于根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;
数据迁移模块430,用于从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述待迁移数据包括多个子数据,所述数据迁移模块430,可以具体包括:
数据批量写入子模块,用于将所述多个子数据批量写入至所述待写入目标数据库标识对应的目标数据库。
子数据提取模块440,用于当接收到所述目标数据库发送的写入异常通知时,从所述多个子数据中提取至少一个子数据;
数据写入判断模块450,用于将所述至少一个子数据写入至所述待写入目标数据库标识对应的目标数据库,并判断所述至少一个子数据是否成功写入;若是,则执行,若否,则执行;
返回模块460,用于返回所述子数据提取模块440;
写入失败标识添加模块470,用于针对所述至少一个子数据添加写入失败标识。
可选地,所述服务器还包括:
第一处理线程配置模块,用于当所述数据迁移任务集合对应的迁移数据量小于预设阈值时,针对所述数据迁移任务集合配置单个处理线程;
所述数据迁移模块430,包括:
同步并行迁移子模块,用于调用所述单个处理线程从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述数据迁移任务集合具有对应的数据分布特征,所述服务器还包括:
第二处理线程配置模块,用于当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置单个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;
所述数据迁移模块430,包括:
异步均等迁移子模块,用于调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用所述队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述服务器还包括:
第三处理线程配置模块,用于当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征不符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为写入线程;
所述数据迁移模块430,包括:
异步抢占迁移子模块,用于调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据、并将读取的待迁移数据形成单个数据队列,以及,调用多个写入线程将所述单个数据队列中的待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述数据迁移任务集合具有对应的数据操作量,所述服务器还包括:
第四处理线程配置模块,用于当所述数据迁移任务集合对应的数据操作量大于预设阈值时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;
所述数据迁移模块430,包括:
异步合作迁移子模块,用于调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用多个队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。
可选地,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述服务器还包括:
第一目标数据断点值确定模块,用于当接收到数据断点迁移任务时,查找所述多个数据表中的最大数据标识值,作为目标数据断点值;
第一断点续传迁移处理执行模块,用于根据所述目标数据断点值执行断点续传迁移处理。
可选地,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述服务器还包括:
候选断点值确定模块,用于当接收到数据断点迁移任务时,在所述多个数据表中分别查找其最大数据标识值,作为多个候选数据断点值;
第二目标数据断点值确定模块,用于在所述多个候选数据断点值,查找最小候选数据断点值,作为目标数据断点值;
第二断点续传迁移处理执行模块,用于根据所述目标数据断点值执行断点续传迁移处理。
根据本发明实施例,通过在接收到所述目标数据库发送的写入异常通知时,将批量提交数据转换为单个提交数据,在单个提交数据时确定异常数据,利用数据回滚机制避免了在数据迁移时遗漏数据,保证了所有数据均可以完整地迁移至目标数据库,提升了数据迁移的可靠性。
根据本发明实施例,通过查找多个数据表中的最大数据标识值,作为目标数据断点值,并根据目标数据断点值执行断点续传迁移处理,在采用同步迁移策略的数据迁移过程中,可以实现数据的断点续传,避免数据丢失。
根据本发明实施例,通过查找多个数据表中的最大数据标识值,作为候选数据断点值,并在多个候选数据断点值中查找查找最小候选数据断点值,作为目标数据断点值,根据该目标数据断点值执行断点续传迁移处理,在采用异步迁移策略的数据迁移过程中,可以实现数据的断点续传,避免数据丢失。
对于服务器实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
Claims (10)
1.一种数据迁移方法,应用于数据迁移服务器,其特征在于,所述方法包括:
接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;
根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;
从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述数据迁移任务集合对应的迁移数据量小于预设阈值时,针对所述数据迁移任务集合配置单个处理线程;
所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
调用所述单个处理线程从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
3.根据权利要求1所述的方法,其特征在于,所述数据迁移任务集合具有对应的数据分布特征,所述方法还包括:
当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置单个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;
所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用所述队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征不符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为写入线程;
所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据、并将读取的待迁移数据形成单个数据队列,以及,调用多个写入线程将所述单个数据队列中的待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
5.根据权利要求1所述的方法,其特征在于,所述数据迁移任务集合具有对应的数据操作量,所述方法还包括:
当所述数据迁移任务集合对应的数据操作量大于预设阈值时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;
所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用多个队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。
6.根据权利要求1所述的方法,其特征在于,所述待迁移数据包括多个子数据,所述将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:
将所述多个子数据批量写入至所述待写入目标数据库标识对应的目标数据库。
7.根据权利要求6所述的方法,其特征在于,在所述将所述多个子数据批量写入至所述待写入目标数据库标识对应的目标数据库的步骤之后,所述方法还包括:
当接收到所述目标数据库发送的写入异常通知时,从所述多个子数据中提取至少一个子数据;
将所述至少一个子数据写入至所述待写入目标数据库标识对应的目标数据库,并判断所述至少一个子数据是否成功写入;
若是,则返回所述从所述多个子数据中提取至少一个子数据的步骤;
若否,则针对所述至少一个子数据添加写入失败标识。
8.根据权利要求2所述的方法,其特征在于,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述方法还包括:
当接收到数据断点迁移任务时,查找所述多个数据表中的最大数据标识值,作为目标数据断点值;
根据所述目标数据断点值执行断点续传迁移处理。
9.根据权利要求3或5所述的方法,其特征在于,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述方法还包括:
当接收到数据断点迁移任务时,在所述多个数据表中分别查找其最大数据标识值,作为多个候选数据断点值;
在所述多个候选数据断点值,查找最小候选数据断点值,作为目标数据断点值;
根据所述目标数据断点值执行断点续传迁移处理。
10.一种数据迁移服务器,其特征在于,所述服务器包括:
任务接收模块,用于接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;
标识确定模块,用于根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;
数据迁移模块,用于从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002213.6A CN108280148A (zh) | 2018-01-02 | 2018-01-02 | 一种数据迁移方法和数据迁移服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002213.6A CN108280148A (zh) | 2018-01-02 | 2018-01-02 | 一种数据迁移方法和数据迁移服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108280148A true CN108280148A (zh) | 2018-07-13 |
Family
ID=62802989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810002213.6A Pending CN108280148A (zh) | 2018-01-02 | 2018-01-02 | 一种数据迁移方法和数据迁移服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108280148A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241029A (zh) * | 2018-08-08 | 2019-01-18 | 新智能源***控制有限责任公司 | 一种实现scada***数据库平滑迁移的方法和装置 |
CN109241027A (zh) * | 2018-07-23 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据迁移的方法、装置、电子设备及计算机可读存储介质 |
CN109460439A (zh) * | 2018-11-14 | 2019-03-12 | 泰康保险集团股份有限公司 | 一种数据处理方法、装置、介质和电子设备 |
CN109710624A (zh) * | 2018-12-19 | 2019-05-03 | 泰康保险集团股份有限公司 | 数据处理方法、装置、介质及电子设备 |
CN110196884A (zh) * | 2019-05-31 | 2019-09-03 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110209650A (zh) * | 2019-05-05 | 2019-09-06 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110555014A (zh) * | 2019-09-06 | 2019-12-10 | 中国联合网络通信集团有限公司 | 一种数据迁移方法和***、电子设备、存储介质 |
CN111258990A (zh) * | 2020-02-17 | 2020-06-09 | 同盾控股有限公司 | 索引库数据迁移方法、装置、设备及存储介质 |
CN111324596A (zh) * | 2020-03-06 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
CN111723079A (zh) * | 2020-06-28 | 2020-09-29 | 深圳壹账通智能科技有限公司 | 数据迁移方法、装置、计算机设备及存储介质 |
CN111831625A (zh) * | 2020-07-14 | 2020-10-27 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
CN111930715A (zh) * | 2020-07-16 | 2020-11-13 | 北京金山云网络技术有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN112000641A (zh) * | 2020-07-31 | 2020-11-27 | 新华三大数据技术有限公司 | 一种数据存储方法、装置以及*** |
CN112000292A (zh) * | 2020-08-21 | 2020-11-27 | 北京金山云网络技术有限公司 | 数据迁移的方法、装置、电子设备和计算机存储介质 |
CN112632032A (zh) * | 2020-12-18 | 2021-04-09 | 华人运通(上海)云计算科技有限公司 | 一种数据迁移方法、装置、存储介质及终端设备 |
CN113051245A (zh) * | 2019-12-26 | 2021-06-29 | 云丁网络技术(北京)有限公司 | 用于迁移数据的方法、装置及*** |
CN113268466A (zh) * | 2021-06-07 | 2021-08-17 | 上海数禾信息科技有限公司 | 消息集群平滑迁移的方法及*** |
CN113360495A (zh) * | 2021-04-20 | 2021-09-07 | 山东英信计算机技术有限公司 | 一种数据库查询中断的恢复方法、装置、设备及可读介质 |
CN113704277A (zh) * | 2021-07-14 | 2021-11-26 | 浪潮商用机器有限公司 | 一种基于数据库的断点续传方法及相关装置 |
CN114077602A (zh) * | 2022-01-13 | 2022-02-22 | 中兴通讯股份有限公司 | 数据迁移方法和装置、电子设备、存储介质 |
WO2022062594A1 (zh) * | 2020-09-22 | 2022-03-31 | 华为云计算技术有限公司 | 迁移数据库的方法和装置、计算设备和计算机程序产品 |
CN115941677A (zh) * | 2022-09-28 | 2023-04-07 | 电子科技大学 | 一种数据库分表迁移的断点续传方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793424A (zh) * | 2012-10-31 | 2014-05-14 | 阿里巴巴集团控股有限公司 | 数据库数据迁移方法及*** |
CN105045877A (zh) * | 2015-07-20 | 2015-11-11 | 深圳市深信服电子科技有限公司 | 数据库数据分片存储方法和装置、数据查询方法和装置 |
CN105989006A (zh) * | 2015-01-27 | 2016-10-05 | 中芯国际集成电路制造(上海)有限公司 | 数据迁移方法和装置 |
CN106294440A (zh) * | 2015-05-27 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据实时迁移的方法和装置 |
CN107153662A (zh) * | 2016-03-04 | 2017-09-12 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN107357883A (zh) * | 2017-06-30 | 2017-11-17 | 北京奇虎科技有限公司 | 数据迁移方法及装置 |
CN107391755A (zh) * | 2017-08-21 | 2017-11-24 | ***股份有限公司 | 一种数据分布调节、查询的方法和装置 |
-
2018
- 2018-01-02 CN CN201810002213.6A patent/CN108280148A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793424A (zh) * | 2012-10-31 | 2014-05-14 | 阿里巴巴集团控股有限公司 | 数据库数据迁移方法及*** |
CN105989006A (zh) * | 2015-01-27 | 2016-10-05 | 中芯国际集成电路制造(上海)有限公司 | 数据迁移方法和装置 |
CN106294440A (zh) * | 2015-05-27 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据实时迁移的方法和装置 |
CN105045877A (zh) * | 2015-07-20 | 2015-11-11 | 深圳市深信服电子科技有限公司 | 数据库数据分片存储方法和装置、数据查询方法和装置 |
CN107153662A (zh) * | 2016-03-04 | 2017-09-12 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN107357883A (zh) * | 2017-06-30 | 2017-11-17 | 北京奇虎科技有限公司 | 数据迁移方法及装置 |
CN107391755A (zh) * | 2017-08-21 | 2017-11-24 | ***股份有限公司 | 一种数据分布调节、查询的方法和装置 |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241027A (zh) * | 2018-07-23 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据迁移的方法、装置、电子设备及计算机可读存储介质 |
CN109241027B (zh) * | 2018-07-23 | 2023-11-07 | 平安科技(深圳)有限公司 | 数据迁移的方法、装置、电子设备及计算机可读存储介质 |
CN109241029B (zh) * | 2018-08-08 | 2020-09-25 | 新智能源***控制有限责任公司 | 一种实现scada***数据库平滑迁移的方法和装置 |
CN109241029A (zh) * | 2018-08-08 | 2019-01-18 | 新智能源***控制有限责任公司 | 一种实现scada***数据库平滑迁移的方法和装置 |
CN109460439A (zh) * | 2018-11-14 | 2019-03-12 | 泰康保险集团股份有限公司 | 一种数据处理方法、装置、介质和电子设备 |
CN109710624A (zh) * | 2018-12-19 | 2019-05-03 | 泰康保险集团股份有限公司 | 数据处理方法、装置、介质及电子设备 |
CN109710624B (zh) * | 2018-12-19 | 2021-06-11 | 泰康保险集团股份有限公司 | 数据处理方法、装置、介质及电子设备 |
CN110209650B (zh) * | 2019-05-05 | 2021-06-29 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110209650A (zh) * | 2019-05-05 | 2019-09-06 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110196884B (zh) * | 2019-05-31 | 2022-04-29 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110196884A (zh) * | 2019-05-31 | 2019-09-03 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110555014A (zh) * | 2019-09-06 | 2019-12-10 | 中国联合网络通信集团有限公司 | 一种数据迁移方法和***、电子设备、存储介质 |
CN110555014B (zh) * | 2019-09-06 | 2022-04-15 | 中国联合网络通信集团有限公司 | 一种数据迁移方法和***、电子设备、存储介质 |
CN113051245A (zh) * | 2019-12-26 | 2021-06-29 | 云丁网络技术(北京)有限公司 | 用于迁移数据的方法、装置及*** |
CN111258990B (zh) * | 2020-02-17 | 2023-04-07 | 同盾控股有限公司 | 索引库数据迁移方法、装置、设备及存储介质 |
CN111258990A (zh) * | 2020-02-17 | 2020-06-09 | 同盾控股有限公司 | 索引库数据迁移方法、装置、设备及存储介质 |
CN111324596A (zh) * | 2020-03-06 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
CN111324596B (zh) * | 2020-03-06 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
CN111723079A (zh) * | 2020-06-28 | 2020-09-29 | 深圳壹账通智能科技有限公司 | 数据迁移方法、装置、计算机设备及存储介质 |
CN111831625A (zh) * | 2020-07-14 | 2020-10-27 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
CN111831625B (zh) * | 2020-07-14 | 2024-03-12 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
CN111930715A (zh) * | 2020-07-16 | 2020-11-13 | 北京金山云网络技术有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN112000641B (zh) * | 2020-07-31 | 2022-08-30 | 新华三大数据技术有限公司 | 一种数据存储方法、装置以及*** |
CN112000641A (zh) * | 2020-07-31 | 2020-11-27 | 新华三大数据技术有限公司 | 一种数据存储方法、装置以及*** |
CN112000292A (zh) * | 2020-08-21 | 2020-11-27 | 北京金山云网络技术有限公司 | 数据迁移的方法、装置、电子设备和计算机存储介质 |
WO2022062594A1 (zh) * | 2020-09-22 | 2022-03-31 | 华为云计算技术有限公司 | 迁移数据库的方法和装置、计算设备和计算机程序产品 |
CN112632032B (zh) * | 2020-12-18 | 2022-12-27 | 华人运通(上海)云计算科技有限公司 | 一种数据迁移方法、装置、存储介质及终端设备 |
CN112632032A (zh) * | 2020-12-18 | 2021-04-09 | 华人运通(上海)云计算科技有限公司 | 一种数据迁移方法、装置、存储介质及终端设备 |
CN113360495B (zh) * | 2021-04-20 | 2023-02-24 | 山东英信计算机技术有限公司 | 一种数据库查询中断的恢复方法、装置、设备及可读介质 |
CN113360495A (zh) * | 2021-04-20 | 2021-09-07 | 山东英信计算机技术有限公司 | 一种数据库查询中断的恢复方法、装置、设备及可读介质 |
CN113268466A (zh) * | 2021-06-07 | 2021-08-17 | 上海数禾信息科技有限公司 | 消息集群平滑迁移的方法及*** |
CN113704277A (zh) * | 2021-07-14 | 2021-11-26 | 浪潮商用机器有限公司 | 一种基于数据库的断点续传方法及相关装置 |
CN113704277B (zh) * | 2021-07-14 | 2024-02-02 | 浪潮商用机器有限公司 | 一种基于数据库的断点续传方法及相关装置 |
CN114077602B (zh) * | 2022-01-13 | 2022-05-17 | 中兴通讯股份有限公司 | 数据迁移方法和装置、电子设备、存储介质 |
CN114077602A (zh) * | 2022-01-13 | 2022-02-22 | 中兴通讯股份有限公司 | 数据迁移方法和装置、电子设备、存储介质 |
CN115941677A (zh) * | 2022-09-28 | 2023-04-07 | 电子科技大学 | 一种数据库分表迁移的断点续传方法 |
CN115941677B (zh) * | 2022-09-28 | 2024-03-19 | 电子科技大学 | 一种数据库分表迁移的断点续传方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108280148A (zh) | 一种数据迁移方法和数据迁移服务器 | |
AU2020200578B2 (en) | Intelligent configuration discovery techniques | |
US11943104B2 (en) | Application migration system | |
CN107003906B (zh) | 云计算技术部件的类型到类型分析 | |
US11016972B2 (en) | Splitting a time-range query into multiple sub-queries for serial execution | |
US20170373932A1 (en) | Configuration discovery service data visualization | |
US11016971B2 (en) | Splitting a time-range query into multiple sub-queries for parallel execution | |
CN106598705A (zh) | 一种异步任务的调度方法、装置、***以及电子设备 | |
CN115129782A (zh) | 一种分布式数据库的分区级连接方法和装置 | |
US20200250192A1 (en) | Processing queries associated with multiple file formats based on identified partition and data container objects | |
CN104182295B (zh) | 一种数据备份方法及装置 | |
CN113391913A (zh) | 一种基于预测的分布式调度方法和装置 | |
CN111435329A (zh) | 一种自动化测试方法和装置 | |
Gopalakrishna et al. | Untangling cluster management with Helix | |
CN114253845A (zh) | 异型架构集成体系的自动化测试方法和装置 | |
Mao et al. | FiGMR: A fine-grained mapreduce scheduler in the heterogeneous cloud | |
WO2016087640A1 (en) | Type-to-type analysis for cloud computing technical components | |
CN117555693A (zh) | 一种企业司库的付款业务分流方法、设备及介质 | |
CN116028217A (zh) | 数据读取的最优路径的确定方法、确定装置和电子设备 | |
CN117349284A (zh) | 数据库分库分表方法、装置、电子设备和计算机存储介质 | |
CN115712481A (zh) | 服务的处理方法、装置及*** | |
CN117455136A (zh) | Pcb工程制前自动化分配方法、***、软件及计算机设备 | |
CN117807025A (zh) | 基于文件同步运行数据至时序库的方法、存储介质及设备 | |
CN114625655A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180713 |
|
RJ01 | Rejection of invention patent application after publication |