CN110399356A - 一种在线数据迁移方法、装置、计算设备及存储介质 - Google Patents
一种在线数据迁移方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN110399356A CN110399356A CN201910517311.8A CN201910517311A CN110399356A CN 110399356 A CN110399356 A CN 110399356A CN 201910517311 A CN201910517311 A CN 201910517311A CN 110399356 A CN110399356 A CN 110399356A
- Authority
- CN
- China
- Prior art keywords
- data
- service request
- goal systems
- synchronous
- cut
- 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.)
- Granted
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
技术领域
本申请涉及计算机技术领域,特别涉及一种在线数据迁移方法、装置、计算设备及存储介质。
背景技术
在大型分布式应用服务生命周期中,经常会遇到由于业务功能的迁移、系统架构的升级等原因对数据进行迁移的行为,也就是将数据从原系统迁移到其他目标系统之上。
目前,将数据从原系统迁移到其他目标系统之上,需要完全停止服务来进行数据迁移,而这种数据迁移过程是有损业务的。
发明内容
有鉴于此,本申请实施例提供了一种在线数据迁移方法、装置、计算设备及存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种在线数据迁移方法,该方法配置有切流规则,所述切流规则用于设置待迁移数据对应的切流状态,在所述待迁移数据准备进行数据迁移时,对应的切流状态设置为系统双写。所述方法包括:响应于原系统接收到业务请求,根据配置的切流规则,判断所述业务请求涉及的数据对应的切流状态;如果所述业务请求涉及的数据对应的切流状态为系统双写,进行系统双写操作,所述系统双写操作包括在原系统进行所述业务请求对应的数据变更操作以及将完成所述数据变更操作后的数据记录写入到目标系统;如果所述待迁移数据中未发生变更的历史数据还未开始迁移,将所述待迁移数据中未发生变更的历史数据迁移至所述目标系统,并在完成所述历史数据迁移的情况下,将所述切流规则中所述待迁移数据对应的切流状态设置为切流至目标系统;如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统。
可选地,在将所述数据记录写入到目标系统之前,将所述数据记录转换为所述目标系统所需的数据格式。
可选地,所述将待迁移数据中未发生变更的历史数据迁移至所述目标系统,具体在第一次系统双写操作之后执行。
可选地,所述在原系统进行所述业务请求对应的数据变更操作包括:针对原系统的每次数据变更操作均开启一个原系统异步事务,所述原系统异步事务用于执行所述业务请求对应的数据变更操作并针对完成所述数据变更操作后的数据记录生成一条同步信息,所述同步信息包括所述数据记录的唯一标识、同步版本、同步状态,其中,所述同步版本随着数据记录的更新而更新,所述同步状态包括未同步或已同步。所述将完成所述数据变更操作后的数据记录写入到目标系统包括:定时扫描出所述同步信息中同步状态为未同步的数据记录的唯一标识;根据扫描出的数据记录的唯一标识,从原系统数据源中捞取出对应的最新同步版本的数据记录;针对捞取出的每一最新同步版本的数据记录均开启一个目标系统异步事务,所述目标系统异步事务用于将捞取出的最新同步版本的数据记录写入到目标系统并将该写入到目标系统的数据记录在所述同步信息中的同步状态更新为已同步。
可选地,在所述如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统之后,还包括:判断所述业务请求需要对数据进行的操作是否为批量操作;如果是批量操作,根据所述同步信息判断是否有未同步的数据记录;如果不存在未同步的数据记录,则在目标系统对所述业务请求进行处理,如果存在未同步的数据记录,则拒绝所述业务请求;如果非批量操作,则根据所述业务请求需要对数据进行的操作确定唯一约束对应的数据记录,并根据所述同步信息判断该唯一约束对应的数据记录是否已同步;如果已同步,则在目标系统对所述业务请求进行处理,如果未同步,则拒绝所述业务请求。
可选地,该方法还包括:在所述未发生变更的历史数据迁移完成的情况下,如果根据所述同步信息判定不存在未同步的数据记录,则将所述切流规则中所述待迁移数据对应的切流状态设置为切流完成;如果所述业务请求涉及的数据对应的切流状态为切流完成,将所述业务请求发送给所述目标系统处理。
根据本申请实施例的第二方面,提供了一种在线数据迁移装置,该装置包括:切流状态切换模块,被配置为配置有切流规则,所述切流规则用于设置待迁移数据对应的切流状态,在所述待迁移数据准备进行数据迁移时,对应的切流状态设置为系统双写。切流状态判断模块,被配置为响应于原系统接收到业务请求,根据配置的切流规则,判断所述业务请求涉及的数据对应的切流状态。双写模块,被配置为如果所述业务请求涉及的数据对应的切流状态为系统双写,进行系统双写操作,所述系统双写操作包括在原系统进行所述业务请求对应的数据变更操作以及将完成所述数据变更操作后的数据记录写入到目标系统。历史数据迁移模块,被配置为如果所述待迁移数据中未发生变更的历史数据还未开始迁移,将所述待迁移数据中未发生变更的历史数据迁移至所述目标系统。所述切流状态切换模块,被配置为在所述历史数据迁移模块完成历史数据迁移的情况下,将所述切流规则中所述待迁移数据对应的切流状态设置为切流至目标系统。业务切流模块,被配置为如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统。
可选地,该装置还包括:异构数据转换模块,被配置为在将所述数据记录写入到目标系统之前,将所述数据记录转换为所述目标系统所需的数据格式。
可选地,所述历史数据迁移模块具体在第一次系统双写操作之后执行。
可选地,所述双写模块包括:原系统双写子模块,被配置为针对原系统的每次数据变更操作均开启一个原系统异步事务,所述原系统异步事务用于执行所述业务请求对应的数据变更操作并针对完成所述数据变更操作后的数据记录生成一条同步信息,所述同步信息包括所述数据记录的唯一标识、同步版本、同步状态,其中,所述同步版本随着数据记录的更新而更新,所述同步状态包括未同步或已同步。定时扫描子模块,被配置为定时扫描出所述同步信息中同步状态为未同步的数据记录的唯一标识。数据捞取子模块,被配置为根据扫描出的数据记录的唯一标识,从原系统数据源中捞取出对应的最新同步版本的数据记录。目标系统双写子模块,被配置为针对捞取出的每一最新同步版本的数据记录均开启一个目标系统异步事务,所述目标系统异步事务用于将捞取出的最新同步版本的数据记录写入到目标系统并将该写入到目标系统的数据记录在所述同步信息中的同步状态更新为已同步。
可选地,该装置还包括:批量判断模块,被配置为在所述业务切流模块将业务请求发送给所述目标系统之后,判断所述业务请求需要对数据进行的操作是否为批量操作。批量同步判断模块,被配置为如果所述目标系统读写模块判定是批量操作,根据所述同步信息判断是否有未同步的数据记录。批量处理模块,被配置为如果所述批量同步判断模块判定不存在未同步的数据记录,则在目标系统对所述业务请求进行处理,如果所述批量同步判断模块判定存在未同步的数据记录,则拒绝所述业务请求。非批量同步判断模块,被配置为如果所述目标系统读写模块判定是非批量操作,则根据所述业务请求需要对数据进行的操作确定唯一约束对应的数据记录,并根据所述同步信息判断该唯一约束对应的数据记录是否已同步。非批量处理模块,被配置为如果所述非批量同步判断模块判定已同步,则在目标系统对所述业务请求进行处理,如果未同步,则拒绝所述业务请求。
可选地,所述切流状态切换模块,还被配置为在所述未发生变更的历史数据迁移完成的情况下,如果根据所述同步信息判定不存在未同步的数据记录,则将所述切流规则中所述待迁移数据对应的切流状态设置为切流完成。所述业务切流模块,还被配置为如果所述业务请求涉及的数据对应的切流状态为切流完成,将所述业务请求发送给所述目标系统处理。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述在线数据迁移方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述在线数据迁移方法的步骤。
本申请实施例中,通过配置切流规则,在准备数据迁移的情况下,使切流状态设置为系统双写,从而,在原系统接收到对待迁移数据的业务请求时,可以在原系统进行业务请求对应的数据变更操作以及将完成数据变更操作后的数据记录写入到目标系统,并将待迁移数据中未发生变更的历史数据迁移至目标系统,可见,增量数据和历史数据从原系统到目标系统迁移过程中,不断接收的业务请求可以从原系统处理切流到目标系统处理,无需中断业务,且在历史数据迁移完成的情况下,将待迁移数据对应的切流状态设置为系统切流,并根据切流状态切换为系统切流,将业务请求切流到目标系统进行处理,实现了业务无中断的、平滑的在线数据迁移。
附图说明
图1示出了根据本申请一实施例的计算设备的结构框图;
图2示出了根据本申请一实施例的在线数据迁移方法的流程图;
图3示出了根据本申请另一实施例的在线数据迁移方法的流程图;
图4示出了根据本申请一实施例的在线数据迁移装置的框图;
图5示出了根据本申请又一实施例的在线数据迁移装置的框图;
图6示出根据本申请一实施例的系统架构图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
数据迁移:由于功能迁移、系统架构升级等原因,对数据表进行迁移的行为。
异构:表示原系统数据表与目标系统数据表本身的表结构不同,原系统与目标系统是跨数据源的、不同的数据库系统。
在本申请中,提供了一种在线数据迁移方法、装置、计算设备及存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示在线数据迁移方法中的步骤。图2示出了根据本申请一实施例的在线数据迁移方法的流程图,包括步骤202至步骤208。根据本申请实施例的在线数据迁移方法,可以预先配置切流规则,所述切流规则用于设置待迁移数据对应的切流状态,在准备数据迁移的情况下,所述切流状态设置为系统双写。
步骤202:响应于原系统接收到业务请求,根据配置的切流规则,判断所述业务请求涉及的数据对应的切流状态。
其中,所述切流规则用于设置待迁移数据对应的切流状态,在所述待迁移数据准备进行数据迁移时,对应的切流状态设置为系统双写。例如,可以针对某个具体的条件(如表中的某个字段在某个范围内,类似用户ID在某个号段),设定具体的切流状态。假设准备迁移的是某个数据库、一张表、一组表或者符合某个迁移条件如用户ID在23到30之间的某些字段等,则可以将这些数据范围的待迁移数据设置为系统双写,以备进行迁移。
为了判断业务请求涉及的数据对应的切流状态,可以采用配置表、缓存等形式,维护数据表与业务请求的关系。进而当接收到业务请求时,则与该业务请求对应的数据表相关的接口,解析请求体中的关键字段信息,将请求体中的关键字段信息与数据表中相应的关键字段信息进行一致化处理,再将一致化处理后的关键字段信息与切流规则中待迁移数据的数据范围相比较,判断出业务请求涉及的数据对应的切流状态。如,业务请求的请求体中的关键字段信息userId,其对应数据表中字段user_id,可以取请求体关键字段信息userId倒数2,3位,将其与切流规则中数据表字段user_id的倒数2,3位进行比较,来判断业务请求涉及的数据对应的切流状态。例如,在所述待迁移数据准备进行数据迁移时,当业务请求涉及的数据在待迁移数据的数据范围内时,业务请求涉及的数据对应的切流状态为系统双写。
步骤204:如果所述业务请求涉及的数据对应的切流状态为系统双写,进行系统双写操作,所述系统双写操作包括在原系统进行所述业务请求对应的数据变更操作以及将完成所述数据变更操作后的数据记录写入到目标系统。
本申请一实施例中,为了提高原系统及目标系统的写操作效率并保证数据安全性,可以对系统双写采用异步事务的方式来实现,这就需要针对完成数据变更操作后的每条数据记录生成一条同步信息,同步信息可以包括数据记录的唯一标识、同步版本、同步状态。根据需要,同步信息中还可以包括数据表的表名。其中,同步版本随着数据记录的更新而更新,同步状态包括未同步或已同步,进而根据该同步信息可以异步地执行事务,高效率地完成系统双写。
例如,本申请中一实施例中,所述在原系统进行所述业务请求对应的数据变更操作可以包括:针对原系统的每次数据变更操作均开启一个原系统异步事务,所述原系统异步事务用于执行所述业务请求对应的数据变更操作并针对完成所述数据变更操作后的数据记录生成一条同步信息,所述同步信息包括所述数据记录的唯一标识、同步版本、同步状态,其中,所述同步版本随着数据记录的更新而更新,所述同步状态包括未同步或已同步。所述将完成所述数据变更操作后的数据记录写入到目标系统可以包括:定时扫描出所述同步信息中同步状态为未同步的数据记录;根据扫描出的数据记录的唯一标识,从原系统数据源中捞取出对应的最新同步版本的数据记录;针对捞取出的每一最新同步版本的数据记录均开启一个目标系统异步事务,所述目标系统异步事务用于将捞取出的最新同步版本的数据记录写入到目标系统并将该写入到目标系统的数据记录在所述同步信息中的同步状态更新为已同步。
可以理解的是,如果相同唯一标识的同步信息已存在,则可以对该相同唯一标识的同步信息进行更新,假设同步版本初始为1,可以在每次更新时累加1,利用版本的乐观锁来控制对相同唯一标识的同步信息的并发操作。在将捞取出的最新同步版本的数据记录写入到目标系统时,目标系统异步事务乐观锁更新版本为原系统数据源的版本,因为如果数据记录已存在的情况下,原系统数据源版本大于当前在目标系统查询出的版本,如果不存在则直接插入。
另外,考虑到数据从原系统升级到目标系统时,会有对表结构本身的设计改造,导致改造后的表结构本身与原表产生差别,因此,本申请实施例在原系统数据表与目标系统数据表的数据格式不相同的情况下,在将所述数据记录写入到目标系统之前,可以将所述数据记录换为所述目标系统所需的数据格式。例如,可以通过提供编程接口的异构数据转换模块来转换,其中,所述编程接口可以用于编写转换逻辑。
步骤206:如果所述待迁移数据中未发生变更的历史数据还未开始迁移,将所述待迁移数据中未发生变更的历史数据迁移至所述目标系统,并在所述历史数据迁移完成的情况下,将所述切流规则中所述待迁移数据对应的切流状态设置为切流至目标系统。
在本申请实施例中,未发生变更的历史数据,是指在开启系统双写操作之后待迁移数据中未变更的数据记录。考虑到历史数据迁移的结束点如果在开启系统双写之前,那么这个空隙内的数据如果不发生变更,就没有途径会被写入目标系统中,因此本申请实施例可以在第一次系统双写操作之后开始历史数据迁移。当然,如果在开启系统双写之后,还未进行未发生变更的历史数据迁移的操作,就已经对所有待迁移数据完成了变更,则可以视为历史数据迁移完成。
历史数据迁移可以有多种实现方式。例如,可以由第一次系统双写操作触发,或者也可以是之后的某个时间触发历史数据开始迁移,按照变更时间的不同,逐批捞取数据,将捞取出的历史数据分批写入到目标系统。再例如,可以由第一次系统双写操作触发,或者也可以是之后的某个时间通过管理数据库的工具将历史数据导出,导入目标系统。在原系统数据表与目标系统数据表的数据格式不相同的情况下,可以将历史数据的数据格式从原系统数据表的格式转换为目标系统数据表的格式。
需要说明的是,本申请实施例所述切流规则中待迁移数据对应的切流状态是随着数据迁移情况的变化而变化的,在准备数据迁移的情况下,所述切流状态为系统双写,在发生变更的数据迁移过程中可以保持系统双写,直到未发生变更的历史数据迁移完成,切流状态则变为切流至目标系统。
步骤208:如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统。
由于历史数据迁移完成,在该阶段,可以将业务请求从原系统切流到目标系统,因此,可以将原系统停读写,将业务请求在原系统的读写均直接做拒绝操作,转向到目标系统处理。
结合本申请上述异步事务的实施方式,在系统双写期间,会不断产生未同步的数据记录。这些未同步的数据记录会被定时捞取出来,并被目标系统异步事务写入到目标系统。然而,在切流状态为切流至目标系统的情况下,可能仍然遗留有未同步的数据记录尚未被写入目标系统。针对这些未同步的数据记录,可以在业务申请切流至目标系统的情况下,继续定时捞取出这些未同步的数据记录,并通过目标系统异步事务写入到目标系统。
为了避免业务请求读写出错,需要在还有未同步的数据记录时,避免读写到未同步的数据记录。具体地,本申请在所述如果业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统之后,还可以包括:判断所述业务请求需要对数据进行的操作是否为批量操作;如果是批量操作,根据所述同步信息判断是否有未同步的数据记录;如果不存在未同步的数据记录,则在目标系统对所述业务请求进行处理,如果存在未同步的数据记录,则拒绝所述业务请求;如果非批量操作,则根据所述业务请求需要对数据进行的操作确定唯一约束对应的数据记录,并根据所述同步信息判断该唯一约束对应的数据记录是否已同步;如果已同步,则在目标系统对所述业务请求进行处理,如果未同步,则拒绝所述业务请求。
在所述未发生变更的历史数据迁移完成的情况下,如果根据所述同步信息判定不存在未同步的数据记录,则可以将所述切流规则中所述待迁移数据对应的切流状态设置为切流完成。此时,由于不存在未同步的数据记录,不会读写到未同步的数据记录。因此,在接收到业务请求之后,如果所述业务请求涉及的数据对应的切流状态为切流完成,则可以将所述业务请求直接发送给所述目标系统处理。通过切流完成这一切流状态,业务请求可以直接发送给目标系统进行处理,无需对同步进行额外判断,减少性能损耗,提高服务性能。
在待迁移数据全部完成迁移之后,则待迁移数据相关的接口即可以通知外围调用系统逐步切换直接调用目标系统。当然,也可以通过其他方式使外围调用系统切换直接调用目标系统,本申请对此并不进行限制。
可见,本申请实施例中,通过配置切流规则,在准备数据迁移的情况下,使切流状态设置为系统双写,从而,在原系统接收到对待迁移数据的业务请求时,可以在原系统进行业务请求对应的数据变更操作以及将完成数据变更操作后的数据记录写入到目标系统,并将待迁移数据中未发生变更的历史数据迁移至目标系统,从而增量数据和历史数据从原系统到目标系统迁移过程中,不断接收的业务请求可以从原系统处理切流到目标系统处理,无需中断业务,且在历史数据迁移完成的情况下,将待迁移数据对应的切流状态设置为系统切流,并根据切流状态切换为系统切流,将业务请求切流到目标系统进行处理,实现了业务无中断的、平滑的在线数据迁移。
图3示出了根据本申请另一实施例的在线数据迁移方法的流程图,包括步骤302至步骤317。根据本申请实施例的在线数据迁移方法,可以预先配置切流规则,所述切流规则中设置了待迁移数据对应的切流状态,在准备数据迁移的情况下,所述切流状态设置为系统双写。
步骤302:响应于原系统接收到业务请求,根据配置的切流规则,判断所述业务请求涉及的数据对应的切流状态。
步骤303:如果所述业务请求涉及的数据对应的切流状态为系统双写,针对原系统的每次数据变更操作均开启一个原系统异步事务,所述原系统异步事务用于执行所述业务请求对应的数据变更操作并针对完成所述数据变更操作后的数据记录生成一条同步信息,所述同步信息包括所述数据记录的唯一标识、同步版本、同步状态,其中,所述同步版本随着数据记录的更新而更新,所述同步状态包括未同步或已同步。
步骤304:定时扫描出所述同步信息中同步状态为未同步的数据记录的唯一标识。
步骤305:根据扫描出的数据记录的唯一标识,从原系统数据源中捞取出对应的最新同步版本的数据记录。
步骤306:针对捞取出的每一最新同步版本的数据记录均开启一个目标系统异步事务,所述目标系统异步事务用于将捞取出的最新同步版本的数据记录转换为所述目标系统所需的数据格式,将转换后的数据记录写入到目标系统,并将该写入到目标系统的数据记录在所述同步信息中的同步状态更新为已同步。
步骤307:在第一次系统双写操作之后,将所述待迁移数据中未发生变更的历史数据转换为所述目标系统所需的数据格式,并将转换后的历史数据迁移至所述目标系统,并在所述未发生变更的历史数据迁移完成的情况下,将所述切流规则中所述待迁移数据对应的切流状态设置为切流至目标系统。
步骤308:如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将原系统停读写。
步骤309:判断所述业务请求需要对数据进行的操作是否为批量操作。
步骤310:如果是批量操作,根据所述同步信息判断是否有未同步的数据记录。
步骤311:如果不存在未同步的数据记录,则在目标系统对所述业务请求进行处理。
步骤312:如果存在未同步的数据记录,则拒绝所述业务请求。
步骤313:如果非批量操作,则根据所述业务请求需要对数据进行的操作确定唯一约束对应的数据记录,并根据所述同步信息判断该唯一约束对应的数据记录是否已同步。
步骤314:如果已同步,则在目标系统对所述业务请求进行处理。
步骤315:如果未同步,则拒绝所述业务请求。
步骤316:在所述未发生变更的历史数据迁移完成的情况下,如果根据所述同步信息判定不存在未同步的数据记录,则将所述切流规则中所述待迁移数据对应的切流状态设置为切流完成。
步骤317:如果所述业务请求涉及的数据对应的切流状态为切流完成,将所述业务请求发送给所述目标系统处理。
在待迁移数据全部完成迁移之后,则待迁移数据相关的接口即可以通知外围调用系统逐步切换直接调用目标系统。
可见,本申请实施例中,根据切流状态的变化,增量数据和历史数据从原系统到目标系统迁移过程中,通过异步事务高效安全地实现数据同步,不断接收的业务请求可以从原系统处理切流到目标系统处理,无需中断业务,并可以在原系统数据表与目标系统数据表的数据格式不相同的情况下,进行格式转换,解决新老系统依赖不同数据源甚至不完全相同表结构的问题,实现跨数据源异构数据的、业务无中断的、平滑的在线数据迁移。
图4示出了根据本申请一实施例的在线数据迁移装置的框图。如图4所示,该装置可以包括:切流状态切换模块410、切流状态判断模块420、业务切流模块430、双写模块440、历史数据迁移模块450。
切流状态切换模块410,可以被配置为配置有切流规则,所述切流规则用于设置待迁移数据对应的切流状态,在所述待迁移数据准备进行数据迁移时,对应的切流状态设置为系统双写;所述历史数据迁移模块完成历史数据迁移的情况下,将所述切流规则中所述待迁移数据对应的切流状态设置为切流至目标系统。
切流状态判断模块420,可以被配置为响应于原系统接收到业务请求,根据配置的切流规则,判断所述业务请求涉及的数据对应的切流状态。
双写模块440,被配置为如果所述业务请求涉及的数据对应的切流状态为系统双写,进行系统双写操作,所述系统双写操作包括在原系统进行所述业务请求对应的数据变更操作以及将完成所述数据变更操作后的数据记录写入到目标系统。
历史数据迁移模块450,可以被配置为如果所述待迁移数据中未发生变更的历史数据还未开始迁移,将所述待迁移数据中未发生变更的历史数据迁移至所述目标系统。
业务切流模块430,可以被配置为如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统。
可见,本申请实施例中,通过配置切流规则,在准备数据迁移的情况下,使切流状态设置为系统双写,从而,在原系统接收到对待迁移数据的业务请求时,可以在原系统进行业务请求对应的数据变更操作以及将完成数据变更操作后的数据记录写入到目标系统,并将待迁移数据中未发生变更的历史数据迁移至目标系统,从而增量数据和历史数据从原系统到目标系统迁移过程中,不断接收的业务请求可以从原系统处理切流到目标系统处理,无需中断业务,且在历史数据迁移完成的情况下,将待迁移数据对应的切流状态设置为系统切流,并根据切流状态切换为系统切流,将业务请求切流到目标系统进行处理,实现了业务无中断的、平滑的在线数据迁移。
图5示出了根据本申请又一实施例的在线数据迁移装置的框图。如图5所示,该装置还可以包括:异构数据转换模块460。该异构数据转换模块460,可以被配置为在将所述数据记录写入到目标系统之前,将所述数据记录转换为所述目标系统所需的数据格式。通过该实施方式可以在原系统数据表与目标系统数据表的数据格式不相同的情况下,进行格式转换,解决新老系统依赖不同数据源甚至不完全相同表结构的问题,实现跨数据源异构数据的、业务无中断的、平滑的在线数据迁移。
考虑到历史数据迁移的结束点如果在开启系统双写之前,那么这个空隙内的数据如果不发生变更,就没有途径会被写入目标系统中,因此,所述历史数据迁移模块450可以在第一次系统双写操作之后执行。
一可能的实施方式中,为了提高原系统及目标系统的写操作效率并保证数据安全性,所述双写模块440可以包括:原系统双写子模块4401、定时扫描子模块4402、数据捞取子模块4403、目标系统双写子模块4404。
其中,该原系统双写子模块4401,可以被配置为针对原系统的每次数据变更操作均开启一个原系统异步事务,所述原系统异步事务用于执行所述业务请求对应的数据变更操作并针对完成所述数据变更操作后的数据记录生成一条同步信息,所述同步信息包括所述数据记录的唯一标识、同步版本、同步状态,其中,所述同步版本随着数据记录的更新而更新,所述同步状态包括未同步或已同步。定时扫描子模块4402,被配置为定时扫描出所述同步信息中同步状态为未同步的数据记录的唯一标识。
该数据捞取子模块4403,可以被配置为根据扫描出的数据记录的唯一标识,从原系统数据源中捞取出对应的最新同步版本的数据记录。
该目标系统双写子模块4404,可以被配置为针对捞取出的每一最新同步版本的数据记录均开启一个目标系统异步事务,所述目标系统异步事务用于将捞取出的最新同步版本的数据记录写入到目标系统并将该写入到目标系统的数据记录在所述同步信息中的同步状态更新为已同步。
一可能的实施方式中,为了避免业务请求读写出错,需要在还有未同步的数据记录时,避免读写到未同步的数据记录。该实施方式中,如图5所示,该装置还可以包括:批量判断模块470、批量同步判断模块471、批量处理模块472、非批量同步判断模块473、及非批量处理模块474。
其中,该批量判断模块470,可以被配置为在所述业务切流模块430将业务请求发送给所述目标系统之后,判断所述业务请求需要对数据进行的操作是否为批量操作。
该批量同步判断模块471,可以被配置为如果所述目标系统读写模块判定是批量操作,根据所述同步信息判断是否有未同步的数据记录。
该批量处理模块472,可以被配置为如果所述批量同步判断模块判定不存在未同步的数据记录,则在目标系统对所述业务请求进行处理,如果所述批量同步判断模块判定存在未同步的数据记录,则拒绝所述业务请求。
该非批量同步判断模块473,可以被配置为如果所述目标系统读写模块判定是非批量操作,则根据所述业务请求需要对数据进行的操作确定唯一约束对应的数据记录,并根据所述同步信息判断该唯一约束对应的数据记录是否已同步。
该非批量处理模块474,可以被配置为如果所述非批量同步判断模块判定已同步,则在目标系统对所述业务请求进行处理,如果未同步,则拒绝所述业务请求。
一可能的实施方式中,如图5所示,所述切流状态切换模块410,还可以被配置为在所述未发生变更的历史数据迁移完成的情况下,如果根据所述同步信息判定不存在未同步的数据记录,则将所述切流规则中所述待迁移数据对应的切流状态设置为切流完成。所述业务切流模块430,还可以被配置为如果所述业务请求涉及的数据对应的切流状态为切流完成,将所述业务请求发送给所述目标系统处理。通过切流完成这一切流状态,业务请求可以直接发送给目标系统进行处理,无需对同步进行额外判断,减少性能损耗,提高服务性能。
为了使本申请实施例更加易于理解,下面,再结合图6所示本申请实施例一可能的系统架构,对各模块的布置方式进行详细说明。需要说明的是,图6所示系统架构为本申请实施例一可能的系统架构,也可以通过其他架构实现,本申请对此并不进行限制。例如,切流模块、原系统双写子模块等也可以布置在调度系统中。
如图6所示系统架构图,可以包括:原系统610、目标系统620、调度系统630。其中,原系统610中嵌入了切流模块611、原系统业务模块612、及数据访问层613、及原系统双写子模块614。目标系统620中嵌入了目标系统业务模块621、数据访问层622、及数据读写模块623。调度系统630中嵌入了增量数据模块631、异构数据转换模块632、历史数据迁移模块633。
其中,切流模块611可以包括:切流状态切换模块6111、切流状态判断模块6112、业务切流模块6113。
所述原系统业务模块612,可以被配置为对业务请求进行相关业务处理,并将业务请求涉及的数据变更操作经过数据访问层613发送给原系统双写子模块614接管。
所述目标系统业务模块621,可以被配置为对切流到目标系统的业务请求进行处理,并把将业务请求涉及的数据变更操作经过数据访问层622,发送给数据读写模块623接管。
增量数据模块631,可以被配置为从原系统捞取出系统双写操作中完成变更的数据记录,将捞取出的变更的数据记录通过异构数据转换模块632转换后,再写入到目标系统的数据表中。
目标系统业务模块621,可以被配置为对接收到的业务请求进行相关业务处理,并将业务请求涉及的操作经过数据访问层622,发送给数据读写模块623接管。
数据读写模块623,可以被配置为执行业务请求涉及的读/写操作。
基于本实施例的系统架构,切流规则的配置可以采用分布式资源管理的组件。该组件在应用上的客户端可以通过在服务端业务配置操作,针对某个具体资源推送修改机器上对应资源的内存变量值。利用该组件这个能力,切流组件611可以通过推送对应资源的内存变量值来改变切流状态。
下面,再对基于图6所示系统架构实现的本申请实施例一可能的实施方式进行详细说明。
在该实施方式中,切流状态可以包括I(表示默认状态)、SS(表示系统双写)、ST(表示切流至目标系统)、或F(表示切流完成)。
I,默认状态,切流组件611不做任何处理,可以在原系统上线初期使用。
SS,系统双写,用于使变更数据可以在原系统与目标系统保存一致,此时处于数据切流中,原系统610中原系统双写子模块614开启原系统异步事务,在完成一条数据记录的数据变更操作同时落地一条同步信息,变更后的数据记录通过目标系统620中数据读写模块623开启目标系统异步事务写入到目标库中。
ST,切流至目标系统,用于使业务请求转发至目标系统,保证目标系统不再写入和读取数据,目标系统不读写未同步完成的数据。
F,切流完成,用于使目标系统不用再额外判断是否有未同步的数据记录以避免性能损耗,原系统不可再写入和读取数据,业务请求均转发至目标系统。
基于以上四种切流状态,下面对各组件、模块的工作过程进行详细说明:
在尚未存在迁移数据的需要时,切流状态切换模块6111将待迁移数据对应的切流状态推送为I。
切流状态切换模块6111确定需要将待迁移数据如一张表、一组表等从原系统迁移到目标系统时,将待迁移数据对应的切流状态推送为SS系统双写。切流状态判断模块6112响应于接收到业务请求,根据表与业务请求之间的关系,由表相关的接口对业务请求中的关键字段信息进行一致化处理,再将一致化处理后的关键字段信息与切流规则中待迁移数据的数据范围相比较,判断业务请求涉及的数据是否落入待迁移数据的范围,如果是,则业务请求涉及的数据对应的切流状态为系统双写,则将业务请求发送给原系统业务模块612。
原系统业务模块612处理接收到的业务请求,将业务请求涉及的数据变更操作经过数据访问层613,发送给原系统双写子模块614接管。
原系统双写子模块614根据感知到切流状态为系统双写,针对原系统的每次数据变更操作均开启一个原系统异步事务,所述原系统异步事务用于执行所述业务请求对应的数据变更操作并针对完成所述数据变更操作后的数据记录生成一条同步信息,如果已存在相同唯一标识的同步信息则更新即可,所述同步信息包括所述数据记录的唯一标识、同步版本、同步状态,其中,所述同步版本随着数据记录的更新而更新,所述同步状态包括未同步或已同步。其中,可以利用同步版本的乐观锁控制对同步信息的并发操作。
增量数据模块631包括:定时扫描子模块6311、数据捞取子模块6312、目标系统双写子模块6313。其中,定时扫描子模块6311被配置为定时扫描出所述同步信息中同步状态为未同步的数据记录的唯一标识,数据捞取子模块6312被配置为根据扫描出的数据记录的唯一标识,目标系统双写子模块6313被配置为从原系统数据源中捞取出对应的最新同步版本的数据记录,针对目标系统的每次写操作均开启一个目标系统异步事务,所述目标系统异步事务用于将捞取出的最新同步版本的数据记录通过异构数据转换模块632转换为所述目标系统所需的数据格式,将转换后的数据记录写入到目标系统,并将该写入到目标系统的数据记录在所述同步信息中的同步状态更新为已同步。例如,实际开发时可以利用SQL捞取LIMIT N条未处理完成状态的数据记录。只要能捞取出来就同步到目标系统,同步到目标系统后,将同步信息中的同步状态改为已同步,此操作会一直进行直到根据同步信息不再有未同步的数据记录。
历史数据迁移模块633在第一次系统双写操作之后,将所述待迁移数据中未发生变更的历史数据通过异构数据转换模块632转换为所述目标系统所需的数据格式,并将转换后的历史数据迁移至所述目标系统。
切流状态切换模块6111在所述历史数据迁移模块633将所述未发生变更的历史数据迁移完成时,如果根据所述同步信息判定不存在未同步的数据记录,则将所述切流规则中所述待迁移数据对应的切流状态推送为切流完成。
业务切流模块6113根据切流状态判断模块6112判定切流规则中所述待迁移数据对应的切流状态推送为切流完成,将接收到的业务请求发送给所述目标系统处理。
目标系统620侧的目标系统业务模块621接收从原系统610切流过来的业务请求,对业务请求进行相关业务处理,并将业务请求涉及的操作经过数据访问层622,发送给数据读写模块623接管。
数据读写模块623判断所述业务请求需要对数据进行的操作是否为批量操作,如果是批量操作,根据所述同步信息判断是否有未同步的数据记录,如果不存在未同步的数据记录,则执行所述业务请求需要对数据进行的操作,如果存在未同步的数据记录,则拒绝所述业务请求,如果非批量操作,则根据所述业务请求需要对数据进行的操作确定唯一约束对应的数据记录,并根据所述同步信息判断该唯一约束对应的数据记录是否已同步,如果已同步,则执行所述业务请求需要对数据进行的操作,如果未同步,则拒绝所述业务请求。
切流模块611在待迁移数据全部完成迁移之后,通过待迁移数据相关的接口即通知外围调用系统逐步切换直接调用目标系统。
可见,通过图6所示系统架构,由于切流模块,原系统双写子模块嵌入在原系统中,可以有效减少外部调用耗时以及保证网络的安全性,减少在线迁移对服务本身的性能影响。
本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的在线数据迁移方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述在线数据迁移方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的在线数据迁移方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述在线数据迁移方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (14)
1.一种在线数据迁移方法,其特征在于,配置有切流规则,所述切流规则用于设置待迁移数据对应的切流状态,在所述待迁移数据准备进行数据迁移时,对应的切流状态设置为系统双写,所述方法包括:
响应于原系统接收到业务请求,根据配置的切流规则,判断所述业务请求涉及的数据对应的切流状态;
如果所述业务请求涉及的数据对应的切流状态为系统双写,进行系统双写操作,所述系统双写操作包括在原系统进行所述业务请求对应的数据变更操作以及将完成所述数据变更操作后的数据记录写入到目标系统;
如果所述待迁移数据中未发生变更的历史数据还未开始迁移,将所述待迁移数据中未发生变更的历史数据迁移至所述目标系统,并在完成所述历史数据迁移的情况下,将所述切流规则中所述待迁移数据对应的切流状态设置为切流至目标系统;
如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统。
2.根据权利要求1所述的方法,其特征在于,还包括:
在将所述数据记录写入到目标系统之前,将所述数据记录转换为所述目标系统所需的数据格式。
3.根据权利要求1或2所述的方法,其特征在于,所述将待迁移数据中未发生变更的历史数据迁移至所述目标系统,具体在第一次系统双写操作之后执行。
4.根据权利要求1或2所述的方法,其特征在于,所述在原系统进行所述业务请求对应的数据变更操作包括:
针对原系统的每次数据变更操作均开启一个原系统异步事务,所述原系统异步事务用于执行所述业务请求对应的数据变更操作并针对完成所述数据变更操作后的数据记录生成一条同步信息,所述同步信息包括所述数据记录的唯一标识、同步版本、同步状态,其中,所述同步版本随着数据记录的更新而更新,所述同步状态包括未同步或已同步;
所述将完成所述数据变更操作后的数据记录写入到目标系统包括:
定时扫描出所述同步信息中同步状态为未同步的数据记录的唯一标识;
根据扫描出的数据记录的唯一标识,从原系统数据源中捞取出对应的最新同步版本的数据记录;
针对捞取出的每一最新同步版本的数据记录均开启一个目标系统异步事务,所述目标系统异步事务用于将捞取出的最新同步版本的数据记录写入到目标系统并将该写入到目标系统的数据记录在所述同步信息中的同步状态更新为已同步。
5.根据权利要求4所述的方法,其特征在于,在所述如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统之后,还包括:
判断所述业务请求需要对数据进行的操作是否为批量操作;
如果是批量操作,根据所述同步信息判断是否有未同步的数据记录;
如果不存在未同步的数据记录,则在目标系统对所述业务请求进行处理,如果存在未同步的数据记录,则拒绝所述业务请求;
如果非批量操作,则根据所述业务请求需要对数据进行的操作确定唯一约束对应的数据记录,并根据所述同步信息判断该唯一约束对应的数据记录是否已同步;
如果已同步,则在目标系统对所述业务请求进行处理,如果未同步,则拒绝所述业务请求。
6.根据权利要求4所述的方法,其特征在于,还包括:
在所述未发生变更的历史数据迁移完成的情况下,如果根据所述同步信息判定不存在未同步的数据记录,则将所述切流规则中所述待迁移数据对应的切流状态设置为切流完成;
如果所述业务请求涉及的数据对应的切流状态为切流完成,将所述业务请求发送给所述目标系统处理。
7.一种在线数据迁移装置,其特征在于,包括:
切流状态切换模块,被配置为配置有切流规则,所述切流规则用于设置待迁移数据对应的切流状态,在所述待迁移数据准备进行数据迁移时,对应的切流状态设置为系统双写;
切流状态判断模块,被配置为响应于原系统接收到业务请求,根据配置的切流规则,判断所述业务请求涉及的数据对应的切流状态;
双写模块,被配置为如果所述业务请求涉及的数据对应的切流状态为系统双写,进行系统双写操作,所述系统双写操作包括在原系统进行所述业务请求对应的数据变更操作以及将完成所述数据变更操作后的数据记录写入到目标系统;
历史数据迁移模块,被配置为如果所述待迁移数据中未发生变更的历史数据还未开始迁移,将所述待迁移数据中未发生变更的历史数据迁移至所述目标系统;
所述切流状态切换模块,被配置为在所述历史数据迁移模块完成历史数据迁移的情况下,将所述切流规则中所述待迁移数据对应的切流状态设置为切流至目标系统;
业务切流模块,被配置为如果所述业务请求涉及的数据对应的切流状态为切流至目标系统,将所述业务请求发送给所述目标系统。
8.根据权利要求7所述的装置,其特征在于,还包括:
异构数据转换模块,被配置为在将所述数据记录写入到目标系统之前,将所述数据记录转换为所述目标系统所需的数据格式。
9.根据权利要求7或8所述的装置,其特征在于,所述历史数据迁移模块具体在第一次系统双写操作之后执行。
10.根据权利要求7或8所述的装置,其特征在于,所述双写模块包括:
原系统双写子模块,被配置为针对原系统的每次数据变更操作均开启一个原系统异步事务,所述原系统异步事务用于执行所述业务请求对应的数据变更操作并针对完成所述数据变更操作后的数据记录生成一条同步信息,所述同步信息包括所述数据记录的唯一标识、同步版本、同步状态,其中,所述同步版本随着数据记录的更新而更新,所述同步状态包括未同步或已同步;
定时扫描子模块,被配置为定时扫描出所述同步信息中同步状态为未同步的数据记录的唯一标识;
数据捞取子模块,被配置为根据扫描出的数据记录的唯一标识,从原系统数据源中捞取出对应的最新同步版本的数据记录;
目标系统双写子模块,被配置为针对捞取出的每一最新同步版本的数据记录均开启一个目标系统异步事务,所述目标系统异步事务用于将捞取出的最新同步版本的数据记录写入到目标系统并将该写入到目标系统的数据记录在所述同步信息中的同步状态更新为已同步。
11.根据权利要求10所述的装置,其特征在于,还包括:
批量判断模块,被配置为在所述业务切流模块将业务请求发送给所述目标系统之后,判断所述业务请求需要对数据进行的操作是否为批量操作;
批量同步判断模块,被配置为如果所述目标系统读写模块判定是批量操作,根据所述同步信息判断是否有未同步的数据记录;
批量处理模块,被配置为如果所述批量同步判断模块判定不存在未同步的数据记录,则在目标系统对所述业务请求进行处理,如果所述批量同步判断模块判定存在未同步的数据记录,则拒绝所述业务请求;
非批量同步判断模块,被配置为如果所述目标系统读写模块判定是非批量操作,则根据所述业务请求需要对数据进行的操作确定唯一约束对应的数据记录,并根据所述同步信息判断该唯一约束对应的数据记录是否已同步;
非批量处理模块,被配置为如果所述非批量同步判断模块判定已同步,则在目标系统对所述业务请求进行处理,如果未同步,则拒绝所述业务请求。
12.根据权利要求10所述的装置,其特征在于,所述切流状态切换模块,还被配置为在所述未发生变更的历史数据迁移完成的情况下,如果根据所述同步信息判定不存在未同步的数据记录,则将所述切流规则中所述待迁移数据对应的切流状态设置为切流完成;
所述业务切流模块,还被配置为如果所述业务请求涉及的数据对应的切流状态为切流完成,将所述业务请求发送给所述目标系统处理。
13.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-6任意一项所述方法的步骤。
14.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-6任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910517311.8A CN110399356B (zh) | 2019-06-14 | 2019-06-14 | 一种在线数据迁移方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910517311.8A CN110399356B (zh) | 2019-06-14 | 2019-06-14 | 一种在线数据迁移方法、装置、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399356A true CN110399356A (zh) | 2019-11-01 |
CN110399356B CN110399356B (zh) | 2023-02-24 |
Family
ID=68324283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910517311.8A Active CN110399356B (zh) | 2019-06-14 | 2019-06-14 | 一种在线数据迁移方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399356B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111752949A (zh) * | 2020-06-28 | 2020-10-09 | 中国银行股份有限公司 | 业务处理方法及装置 |
CN112559245A (zh) * | 2020-12-01 | 2021-03-26 | 深圳市欧瑞博科技股份有限公司 | 智能网关的数据迁移方法、装置、服务器以及存储介质 |
CN112632032A (zh) * | 2020-12-18 | 2021-04-09 | 华人运通(上海)云计算科技有限公司 | 一种数据迁移方法、装置、存储介质及终端设备 |
CN112650623A (zh) * | 2020-12-25 | 2021-04-13 | 中国工商银行股份有限公司 | 业务系统切换过程中的数据处理方法及装置 |
WO2021098268A1 (zh) * | 2019-11-22 | 2021-05-27 | 浪潮电子信息产业股份有限公司 | 一种mon服务迁移方法、装置、设备及可读存储介质 |
CN113254424A (zh) * | 2021-06-11 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 数据服务迁移方法、装置及设备 |
CN113438275A (zh) * | 2021-05-27 | 2021-09-24 | 众安在线财产保险股份有限公司 | 数据迁移方法、装置、存储介质及数据迁移设备 |
CN113468135A (zh) * | 2021-09-01 | 2021-10-01 | 阿里云计算有限公司 | 数据迁移方法、系统、设备及产品 |
WO2022048622A1 (zh) * | 2020-09-04 | 2022-03-10 | 阿里云计算有限公司 | 数据迁移方法、装置、设备、分布式系统及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268501A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团北京有限公司 | 一种在线数据迁移过程中的业务处理方法及装置 |
WO2018177107A1 (zh) * | 2017-03-29 | 2018-10-04 | 腾讯科技(深圳)有限公司 | 数据迁移方法、迁移服务器及存储介质 |
-
2019
- 2019-06-14 CN CN201910517311.8A patent/CN110399356B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268501A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团北京有限公司 | 一种在线数据迁移过程中的业务处理方法及装置 |
WO2018177107A1 (zh) * | 2017-03-29 | 2018-10-04 | 腾讯科技(深圳)有限公司 | 数据迁移方法、迁移服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
赵艳妮等: "一种异构信息系统数据迁移技术研究", 《现代计算机(专业版)》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021098268A1 (zh) * | 2019-11-22 | 2021-05-27 | 浪潮电子信息产业股份有限公司 | 一种mon服务迁移方法、装置、设备及可读存储介质 |
CN111752949A (zh) * | 2020-06-28 | 2020-10-09 | 中国银行股份有限公司 | 业务处理方法及装置 |
CN111752949B (zh) * | 2020-06-28 | 2023-08-22 | 中国银行股份有限公司 | 业务处理方法及装置 |
WO2022048622A1 (zh) * | 2020-09-04 | 2022-03-10 | 阿里云计算有限公司 | 数据迁移方法、装置、设备、分布式系统及存储介质 |
CN112559245A (zh) * | 2020-12-01 | 2021-03-26 | 深圳市欧瑞博科技股份有限公司 | 智能网关的数据迁移方法、装置、服务器以及存储介质 |
CN112632032A (zh) * | 2020-12-18 | 2021-04-09 | 华人运通(上海)云计算科技有限公司 | 一种数据迁移方法、装置、存储介质及终端设备 |
CN112650623A (zh) * | 2020-12-25 | 2021-04-13 | 中国工商银行股份有限公司 | 业务系统切换过程中的数据处理方法及装置 |
CN112650623B (zh) * | 2020-12-25 | 2023-11-03 | 中国工商银行股份有限公司 | 业务系统切换过程中的数据处理方法及装置 |
CN113438275A (zh) * | 2021-05-27 | 2021-09-24 | 众安在线财产保险股份有限公司 | 数据迁移方法、装置、存储介质及数据迁移设备 |
CN113254424A (zh) * | 2021-06-11 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 数据服务迁移方法、装置及设备 |
CN113254424B (zh) * | 2021-06-11 | 2023-02-28 | 腾讯科技(深圳)有限公司 | 数据服务迁移方法、装置及设备 |
CN113468135A (zh) * | 2021-09-01 | 2021-10-01 | 阿里云计算有限公司 | 数据迁移方法、系统、设备及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN110399356B (zh) | 2023-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399356A (zh) | 一种在线数据迁移方法、装置、计算设备及存储介质 | |
EP1300757A1 (en) | Shareable installation hierarchies | |
CN105095484B (zh) | 一种数据拉链方法 | |
CN101211272A (zh) | 动态虚拟机生成 | |
CN110310060A (zh) | 基于分片的库存管理方法以及装置 | |
WO2017107788A1 (zh) | 一种机器学习工具中间件及机器学习训练方法 | |
CN105653652B (zh) | 一种数据同步方法及系统 | |
CN107463610A (zh) | 一种数据入库方法及装置 | |
US20020091560A1 (en) | Work flow management method and system and processing program thereof | |
CN110008017A (zh) | 一种分布式处理系统及方法、一种计算设备及存储介质 | |
CN116361290A (zh) | 冷热数据处理方法、装置、电子设备及存储介质 | |
CN102339299B (zh) | 信息处理装置和信息处理方法 | |
JP7230349B2 (ja) | 設計データ分析のためのシステムおよび方法 | |
CN114415977B (zh) | 访问存储池的方法以及分布式存储系统 | |
CN107092528A (zh) | 一种分布式任务调度方法、装置及系统 | |
CN110874219A (zh) | 一种任务的权限控制方法和装置 | |
CN106302125A (zh) | 一种对请求信息进行响应的方法、装置及系统 | |
CN114258035B (zh) | 通信方法及装置、系统 | |
CN113238846A (zh) | 任务调度的方法以及装置 | |
Lehner et al. | An Architectural Extension for Digital Twin Platforms to Leverage Behavioral ModelsBehaviors | |
CN114116672B (zh) | 数据同步方法及相关装置 | |
CN109918233A (zh) | 一种数据处理方法、装置、计算设备及存储介质 | |
CN113296964B (zh) | 数据处理方法及装置 | |
CN109460303A (zh) | 一种数据处理方法及装置、一种计算设备及存储介质 | |
CN115756584A (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 |