基于数据库双写的跨库账户迁移方法技术

技术编号:29673014 阅读:39 留言:0更新日期:2021-08-13 21:54
本发明专利技术涉及大数据技术领域,具体为一种基于数据库双写的跨库账户迁移方法,包括:旧数据库为主数据库,首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,并将新数据库作为主数据库。本方案能在不停机不中断业务的情况下,保持数据一致性,完成跨库数据迁移。

【技术实现步骤摘要】
基于数据库双写的跨库账户迁移方法
本专利技术涉及大数据
,具体为一种基于数据库双写的跨库账户迁移方法。
技术介绍
在信息化建设过程中,信息安全问题日益严重,为了保证信息安全,以及消除“IOE”对数据库的垄断,以降低成本,现在有众多企业参加“去IOE”运动,企业将原本Oracle中数据迁移到新的Mysql中。在迁移过程中,有些企业要求必须要保证新数据库中账户数据和旧数据库中账户数据一致,但是如果在不停机的迁移过程中,若存在业务,则会涉及到旧数据库在迁移过程中有新数据的写入,从而影响新数据库中账户数据和旧数据库中账户数据需要保持一致的要求。因此传统的迁移方案,在涉及跨越不同的数据库进行迁移的时候,均采用停机的方式进行账户数据迁移。但是很多企业的数据库迁移,涉及到上亿数据量,如果停机进行迁移,停机时间会很长,从而导致长时间的业务中断,降低了用户的使用体验,造成损失。
技术实现思路
本专利技术意在提供一种在不停机不中断业务的情况下,也能保持数据一致性的基于数据库双写的跨库账户迁移方法,以解决现有跨越不同类型数据库进行迁移存在的需要停机,中断业务,才能保持数据一致性的问题。本专利技术提供如下基础方案:基于数据库双写的跨库账户迁移方法,包括如下内容:旧数据库为主数据库,首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,并将新数据库作为主数据库。说明:主数据库为系统进行业务时调用的数据库。基础方案的有益效果:首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,此时在被迁移的旧数据库中已经提取不到任何需要迁移的数据,而在迁移过程中,被迁移的旧数据库和数据迁入的新数据库所组成的系统的双写一直在进行,当迁移完成时,新数据库和旧数据库中的数据已经一致。整个数据迁移的过程,不需要停机,也不需要中断业务,即使在迁移过程中,旧数据库作为主数据库时,有数据的操作,也会随着迁移过程的进行,逐渐被迁移到新数据库中,直至旧数据库中无数据可迁移,因此在跨越不同类型数据库进行迁移时,也保证了数据的一致性。相对于传统的迁移方案需要停机,中断业务,需要考虑在业务最少的时候停机,以使损失最小化,由于本方案不需要停机,中断业务,因此本方案可以在任意时间操作,不造成任何损失,也不会降低用户的使用体验。进一步,所述操作为新增和更新。有益效果:操作为新增和更新,将上一次迁移时间段内旧数据库中新增和更新的数据作为本次迁移的数据,以此逐步实现整个旧数据库中数据的迁移,并且不遗漏任何数据。进一步,所述获取上一次迁移所用时间内旧数据库中的操作数据,包括:获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库中该次迁移的开始时间点和结束时间点之间操作数据为下一次迁移的迁移数据。有益效果:获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库中该次迁移的开始时间点和结束时间点之间操作的数据为下一次迁移的迁移数据,以数据库时间中的时间点为边界,保证获取迁移数据的完整性。进一步,所述获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库中该次迁移的开始时间点和结束时间点之间操作数据为下一次迁移的迁移数据,均采用SQL,且若新数据库和旧数据库为同一系统的数据库,但该系统不支持双写,则对所述系统进行改造,使其支持双写,即向新数据库和旧数据库同时执行SQL。有益效果:采用SQL可直接获取数据库时间中该次迁移的开始时间点和结束时间点和该次迁移的开始时间点和结束时间点之间操作的数据作为下一次迁移的迁移数数据,便于下次迁移使用。进一步,若旧数据库为Oracle,新数据库为Mysql,则迁移到Mysql的数据采用覆盖(replaceinto)。有益效果:Mysql的数据采用replaceinto的方式,如果存在相同的记录,则先删除掉,再插入新记录,以保证以迁移数据为主,不出现脏数据。进一步,所述若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,具体包括以下内容:首次迁移所用时间为:其中,R为首次迁移数据量,即首次迁移前旧数据库中现有数据量;Vq为数据迁入的新数据库中数据写入速度,单位为每秒写入数据库的数据的条数(records/s);从第二次迁移开始,后续的每次迁移所用时间为:其中,n为迁移的次数;Vi为被迁移的旧数据库中数据写入速度,且Vq>Vi;Tn-1Vi为第n次迁移的迁移数据量;若则停止迁移。有益效果:由于Vq是大于Vi的,因此Tn肯定是收敛的,理论上只需要Tn小于被迁移的旧数据库两次操作数据的时间间隔,即迁移就停止。旧数据库中数据写入速度为Vi条每秒,两条数据写入之间的时间间隔为如果某次迁移所用时间小于那么后一条新数据还没有写入到旧数据库中时,迁移就已经完成了,由于新数据库和旧数据库进行双写,该后一条新数据会同时写入到新、旧数据库中,从而新、旧数据库中数据一致,不再继续进行迁移。既能完成数据迁移,又能保证新数据库和旧数据库之间数据的一致性。进一步,采用滚动升级将数据迁入的新数据库作为主数据库。有益效果:采用滚动升级将数据迁入的新数据库作为主数据库,能使用户无感知,平滑进行过渡。附图说明图1为本专利技术基于数据库双写的跨库账户迁移方法实施例的示意图;图2为本专利技术基于数据库双写的跨库账户迁移方法实施例的时间轴示意图。具体实施方式下面通过具体实施方式进一步详细说明:实施例基本如附图1所示:基于数据库双写的跨库账户迁移方法,用于不同数据库之间进行数据迁移,被迁移数据的数据库为旧数据库,将数据迁入的数据库为新数据库。新数据库和旧数据库为同一系统的数据库,且该系统支持双写,即新数据库和旧数据库能同时写入数据,向新数据库和旧数据库同时执行SQL,本实施例中系统为账户系统,由于账户数据中包含余额数据,在不停机的情况下余额数据可能在不断变化,因此在不停机更新的情况下必须要保证新库中账户余额数据和老库一致,并且对账户系统进行改造,使其支持双写,采用滚动发布升级支持双写的账户系统,以保证业务不中断,能使用户无感知,平滑进行过渡。旧数据库为主数据库,主数据库为账户系统进行业务时调用的数据库首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,操作为新增和更新,若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,具体为:如图2所示,首次迁移所用时间为:其中,R为首次迁移数据量,即首次迁移前旧数据库中现有数据量;本文档来自技高网...

【技术保护点】
1.基于数据库双写的跨库账户迁移方法,其特征在于:包括如下内容:/n旧数据库为主数据库,首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,并将新数据库作为主数据库。/n

【技术特征摘要】
1.基于数据库双写的跨库账户迁移方法,其特征在于:包括如下内容:
旧数据库为主数据库,首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,并将新数据库作为主数据库。


2.根据权利要求1所述的基于数据库双写的跨库账户迁移方法,其特征在于:操作为新增和更新。


3.根据权利要求1所述的基于数据库双写的跨库账户迁移方法,其特征在于:所述获取上一次迁移所用时间内旧数据库中的操作数据,包括:获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库中该次迁移的开始时间点和结束时间点之间操作数据为下一次迁移的迁移数据。


4.根据权利要求3所述的基于数据库双写的跨库账户迁移方法,其特征在于:所述获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库中该次迁移的开始时间点和结束时间点之间操作数据为下一次迁移的迁移数据,均采用SQL,且若新数据库和旧数据库为同一系统的数据库,但系统不支持双写,则对系统进行改造,使其...

【专利技术属性】
技术研发人员:周曦
申请(专利权)人:重庆富民银行股份有限公司
类型:发明
国别省市:重庆;50

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

1