一种数据迁移方法和装置制造方法及图纸

技术编号:20425175 阅读:67 留言:0更新日期:2019-02-23 08:30
本说明书实施例提供一种数据迁移方法和装置,其中,所述方法用于将源数据库的状态型数据迁移到目标数据库,所述状态型数据是动态更新的数据;该方法包括:第一应用服务接收请求对源数据库的状态型数据进行更新的数据更新请求;开启事务模板记录对应本次更新操作的更新数据,所述更新数据包括:状态型数据的最新值,并将更新数据同步至消息中心。第一应用服务在接收到消息中心返回的同步成功通知后,将事务模板记录的更新数据提交至源数据库,以使得源数据库更新对应的状态型数据;消息中心将更新数据发送至第二应用服务,由第二应用服务将更新数据发送至目标数据库。

【技术实现步骤摘要】
一种数据迁移方法和装置
本公开涉及数据库
,特别涉及一种数据迁移方法和装置。
技术介绍
数据迁移是很常见的场景,该数据迁移是将数据从一个存储介质迁移到另一个存储介质的方法。比如,某公司原来采取商业化存储设备,成本高,维护困难,后续自行研发对应存储设备后需要将数据进行迁移。迁移需要尽量对现有业务影响最小,也必须确保数据准确性。对于金融类数据的准确性要求极高,不容许有任何数据丢失或者错误。对于流水型数据,如账户的明细等,由于该数据不再变化,直接将老数据搬迁过来再切换数据库即可。但是对于用户余额信息等状态类数据,由于数据时刻在变化,对此类数据迁移时对业务的影响较大。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种数据迁移方法和装置,以在迁移状态型数据时降低对业务的影响。具体地,本说明书一个或多个实施例是通过如下技术方案实现的:第一方面,提供一种数据迁移方法,所述方法用于将源数据库的状态型数据迁移到目标数据库,所述状态型数据是动态更新的数据;所述方法包括:第一应用服务接收数据更新请求,所述数据更新请求用于请求对源数据库的状态型数据进行更新;所述源数据库用于接收存储第一应用服务获得的数据;所述第一应用服务开启事务模板记录对应本次更新操作的更新数据,所述更新数据包括:所述状态型数据的最新值,并将所述更新数据同步至消息中心;所述第一应用服务在接收到消息中心返回的同步成功通知后,将所述事务模板记录的更新数据提交至源数据库,以使得源数据库更新对应的状态型数据;所述消息中心将所述更新数据发送至第二应用服务,由第二应用服务将所述更新数据发送至目标数据库;所述目标数据库用于接收存储第二应用服务获得的数据;所述第一应用服务和第二应用服务属于同一应用系统。第二方面,提供一种数据迁移系统,所述系统用于将源数据库的状态型数据迁移到目标数据库,所述状态型数据是动态更新的数据;所述系统包括:第一应用服务,用于接收数据更新请求,所述数据更新请求用于请求对源数据库的状态型数据进行更新;所述源数据库用于接收存储第一应用服务获得的数据;开启事务模板记录对应本次更新操作的更新数据,所述更新数据包括:所述状态型数据的最新值,并将所述更新数据同步至消息中心;在接收到消息中心返回的同步成功通知后,将所述事务模板记录的更新数据提交至源数据库,以使得源数据库更新对应的状态型数据;消息中心,用于在接收到第一应用服务发送的更新数据后,在存储成功后向第一应用服务返回同步成功通知;并将更新数据发送至第二应用服务;所述第一应用服务和第二应用服务属于同一应用系统;第二应用服务,用于将更新数据发送至目标数据库,所述目标数据库用于接收存储第二应用服务获得的数据。第三方面,提供一种业务处理设备,所述设备包括存储器、处理器,以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行指令时实现以下步骤:接收向源数据库的数据更新请求,所述数据更新请求用于请求对源数据库的状态型数据进行更新;开启事务模板记录对应本次更新操作的更新数据,所述更新数据包括:状态型数据的最新值,并将所述更新数据同步至消息中心;在接收到消息中心返回的同步成功通知后,将所述事务模板记录的更新数据提交至源数据库,以使得源数据库更新对应的状态型数据。第四方面,提供一种消息中心设备,所述设备包括存储器、处理器,以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行指令时实现以下步骤:接收第一应用服务发送的更新数据,所述更新数据包括:第一应用服务根据对源数据库的状态型数据进行更新的请求得到的所述状态型数据的最新值;向所述第一应用服务返回同步成功通知,以使得第一应用服务将所述事务模板记录的更新数据提交至源数据库;在接收到源数据库发送的处理成功通知时,将所述更新数据发送至第二应用服务,以使得第二应用服务将所述更新数据同步至目标数据库。本说明书一个或多个实施例的数据迁移方法和装置,通过在迁移状态型数据时,以事务的方式记录更新数据,可以保证消息中心和源数据库的数据存储是同步成功或者失败,要么都失败,要么都成功。比如,数据先发给消息中心,再发给源数据库,如果源数据存储失败,事务回滚,消息中心也不会向目标库投递的。如此保证源库和目标库的一致性,保证了“准确一致性”。并且,通过由消息中心将数据投递至目标库,使得不需要将源库的数据实时和目标库同步,提升了性能。此外,该方案可以在应用于迁移状态型数据时,不需要停止状态型数据对应的应用服务很长时间,可以实现一边运行服务一边进行数据迁移,并且使得保证数据一致性和性能提升,这种在服务的同时进行迁移的方式,停止服务的时间显著缩短了,显著降低了对业务的影响。附图说明为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本说明书至少一个实施例提供的一种数据迁移方法的应用系统架构;图2为本说明书至少一个实施例提供的一种数据迁移方法的流程图。具体实施方式为了使本
的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。状态型数据:数据会动态更新,例如,用户的账户余额,当用户进行提现等账户操作时,账户余额的数据会更新。消息中心:一种事务型消息中间件,通过该中间件能确保消息准确投递。本说明书至少一个实施例提供的数据迁移方法,图1示例了该方法的应用系统架构,如图1所示,源数据库11中存储有状态型数据,例如,存储有用户的账户余额。如下表1示例了一种源数据中存储的状态型数据,以账户余额为例,用户可以提现并触发该状态型数据的变动:表1状态型数据账户名账号余额账户状态最新修改时间小明1001100正常2018-1-1212:00:01假设现在要进行数据迁移,要将机房A的源数据库11中存储的状态型数据迁移至机房B的目标数据库12中。如下描述该迁移方法:请继续参见图1,该方法的实现,可以由第一应用服务13、消息中心14、第二应用服务15与上述的源数据库11和目标数据库12配合实现。其中,所述的第一应用服务13位于机房A,可以用于在接收到用户的业务请求时执行业务逻辑的处理,比如,根据用户对账户的提现请求进行提现处理并更改业务数据。第一应用服务13对应处理的业务数据可以存储至源数据库11。第二应用服务15是位于机房B,同样可以执行业务逻辑的处理,而第二应用服务15对应处理的业务数据可以存储至目标数据库12。所述的第一应用服务13和第二应用服务15属于同一应用系统,例如,都属于某一APP,其中的第一应用服务13可以是位于机房A的用于处理该APP的业务请求的服务模块,第二应用服务15可以是位于机房B的用于处理该APP的业务请求的服务模块。示例性的,本文档来自技高网
...

【技术保护点】
1.一种数据迁移方法,所述方法用于将源数据库的状态型数据迁移到目标数据库,所述状态型数据是动态更新的数据;所述方法包括:第一应用服务接收数据更新请求,所述数据更新请求用于请求对源数据库的状态型数据进行更新;所述源数据库用于接收存储第一应用服务获得的数据;所述第一应用服务开启事务模板记录对应本次更新操作的更新数据,所述更新数据包括:所述状态型数据的最新值,并将所述更新数据同步至消息中心;所述第一应用服务在接收到消息中心返回的同步成功通知后,将所述事务模板记录的更新数据提交至源数据库,以使得源数据库更新对应的状态型数据;所述消息中心将所述更新数据发送至第二应用服务,由第二应用服务将所述更新数据发送至目标数据库;所述目标数据库用于接收存储第二应用服务获得的数据;所述第一应用服务和第二应用服务属于同一应用系统。

【技术特征摘要】
1.一种数据迁移方法,所述方法用于将源数据库的状态型数据迁移到目标数据库,所述状态型数据是动态更新的数据;所述方法包括:第一应用服务接收数据更新请求,所述数据更新请求用于请求对源数据库的状态型数据进行更新;所述源数据库用于接收存储第一应用服务获得的数据;所述第一应用服务开启事务模板记录对应本次更新操作的更新数据,所述更新数据包括:所述状态型数据的最新值,并将所述更新数据同步至消息中心;所述第一应用服务在接收到消息中心返回的同步成功通知后,将所述事务模板记录的更新数据提交至源数据库,以使得源数据库更新对应的状态型数据;所述消息中心将所述更新数据发送至第二应用服务,由第二应用服务将所述更新数据发送至目标数据库;所述目标数据库用于接收存储第二应用服务获得的数据;所述第一应用服务和第二应用服务属于同一应用系统。2.根据权利要求1所述的方法,所述消息中心将所述更新数据发送至第二应用服务,包括:如果所述消息中心向第二应用服务发送更新数据失败,则进行发送重试,直至将所述更新数据成功发送至第二应用服务。3.根据权利要求1所述的方法,所述消息中心将所述更新数据发送至第二应用服务,包括:在所述第一应用服务将所述事务模板记录的更新数据提交至源数据库时失败之后,所述失败由于源数据库采取了禁写,所述消息中心继续将剩余的更新数据全部成功发送至第二应用服务,此时数据迁移完成。4.根据权利要求1所述的方法,所述目标数据库在接收到第二应用服务发送的更新数据之后,所述方法还包括:比较第一时间戳和第二时间戳,所述第一时间戳是所述目标数据库已经存在的所述状态型数据对应的更新时间,所述第二时间戳是所述更新数据中的状态型数据的最新值对应的更新时间;若第一时间戳较新,则丢弃所述更新数据中的最新值;若第二时间戳较新,则用所述最新值覆盖所述目标数据库已经存在的状态型数据。5.根据权利要求1所述的方法,所述更新数据还包括:更新明细记录和核对状态,所述更新明细记录用于记载本次更新操作的更新内容;所述核对状态用于表示所述源数据库和目标数据库的更新明细记录的核对状态;所述由第二应用服务将所述更新数据发送至目标数据库之后,所述方法还包括:获取源数据库和目标数据库中核对状态是尚未核对的更新明细记录进行比对核对;若核对成功,则将所述核对状态设置为核对成功状态。6.一种数据迁移系统,所述系统用于将源数据库的状态型数据迁移到目标数据库,所述状态型数据是动态更新的数据;所述系统包括:第一应用服务,用于接收数据更新请求,所述数据更新请求用于请求对源数据库的状态型数据进行更新;所述源数据库用于接收存储第一应用服务获得的数据;开启事务模板记录对应本次更新操作的更新数据,所...

【专利技术属性】
技术研发人员:王磊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1