《数据一致性恢复方法.pdf》由会员分享,可在线阅读,更多相关《数据一致性恢复方法.pdf(8页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103136248 A(43)申请公布日 2013.06.05CN103136248A*CN103136248A*(21)申请号 201110388032.X(22)申请日 2011.11.29G06F 17/30(2006.01)(71)申请人中国银联股份有限公司地址 200135 上海市浦东新区含笑路36号银联大厦(72)发明人茅毓铭 王振 鲁志军 杨燕明刘淑娟(74)专利代理机构中国专利代理(香港)有限公司 72001代理人高为 王忠忠(54) 发明名称数据一致性恢复方法(57) 摘要本发明公开了一种数据一致性恢复方法,包括分配数据挖掘的任务;根据所述任务,挖掘。
2、源数据库中的数据;根据业务规则,从源数据库中的数据和目标数据中的数据中选择出结果数据;以及将源数据库中的数据和目标数据中的数据中统一为所述结果数据。通过本发明可以保证分散的多个数据库中的数据的一致性。(51)Int.Cl.权利要求书1页 说明书4页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书4页 附图2页(10)申请公布号 CN 103136248 ACN 103136248 A1/1页21.一种数据一致性恢复方法,包括:分配数据挖掘的任务;根据所述任务,挖掘源数据库中的数据;根据业务规则,从源数据库中的数据和目标数据库中的数据中选择出结果数据;以及。
3、将源数据库中的数据和目标数据中的数据中统一为所述结果数据。2.如权利要求1所述的数据一致性恢复方法,其中挖掘源数据库中的数据的步骤是以多进程并发执行的,所述方法还包括控制进程的数量以及控制单一进程内部的执行速率。3.如权利要求1或2所述的数据一致性恢复方法,其中所述业务规则以配置文件的形式存储在恢复系统中,所述配置文件采用内存映射的方法,具备动态调整并生效的功能。4.如权利要求1或2所述的数据一致性恢复方法,其中在选择出结果数据之后,还包括对源数据库中的数据、目标数据库中的数据以及结果数据进行备份的步骤。5.如权利要求1或2所述的数据一致性恢复方法,其中将源数据库中的数据和目标数据库中的数据中。
4、统一为所述结果数据的步骤又包括以下步骤:如果根据业务规则,源数据库中的数据应该得到保留,则将目标数据库中的数据更改为结果数据,以及如果根据业务规则,目标数据库中的数据应该得到保留,则将源数据库中的数据更改为结果数据。6.如权利要求1或2所述的数据一致性恢复方法,其中分配数据挖掘的任务包括针对发生故障的时间段将时间分片,并将时间分片顺序存储起来,使得每一任务对应一时间片。7.如权利要求1或2所述的数据一致性恢复方法,其中挖掘源数据库中的数据的步骤包括挖掘所述源数据库中符合任务所对应的时间片的数据。8.如权利要求1或2所述的数据一致性恢复方法还包括根据要求暂停、恢复或终止所述方法的各步骤。9.如权。
5、利要求1或2所述的数据一致性恢复方法还包括在将源数据库中的数据和目标数据库中的数据中统一为所述结果数据后向用户汇报任务完成的步骤。10.如权利要求6所述的数据一致性恢复方法,其中每一任务在处理完其对应的时间片后再获取剩余的未处理的时间片进行处理,直至处理完所有的时间片。权 利 要 求 书CN 103136248 A1/4页3数据一致性恢复方法技术领域0001 本发明涉及数据库技术,尤其涉及将主份数据库系统和备份数据库系统中的数据保持一致的方法。背景技术0002 对任何一个金融IT系统来说,服务的持续性和资金的安全性都是衡量其质量的重要指标。为实现系统的持续运行,容灾、纠错等高可用措施是必不可少。
6、的,当前高可用机制中一般会选择进行系统切换或启用备份系统,这将导致交易数据的分散与不一致,若不进行任何处理,会导致错帐等一系列资金风险。如何在金融系统故障发生后,保证主份数据库系统和备份数据库系统之间交易数据的一致性,从而确保资金安全就显得尤为重要。0003 已经有一些针对数据库一致性问题的解决方案。例如,申请号为200480001712.X的中国专利申请中公开了一种用于在数据库备份上执行一致性检查的方法,包括产生要从数据库备份中检索的页列表;通过读取所述数据库备份来检索所述列表中的所述页;从所述数据库备份创建一数据库视图,其中所述数据库视图比包含在所述数据库备份中的所述数据库需要较少的存储空。
7、间;将事务日志和所述检索页复制到所述数据库视图中;将所述数据库视图恢复到事务一致状态,以及通过从所述数据库备份和所述数据库视图中读取所有数据库页来在所述数据库备份上执行一致性检查。0004 此外,在中国专利申请CN98107939.3中公开了一种维护多个数据库中的集成数据一致性的方法,包括收集基本数据库中的数据更新;生成查询,查询基于异构用户数据库特定格式被转换;和分配被转换的查询到异构用户数据库。0005 然而,还是需要一种智能的交易一致性恢复方法,能够以灵活的规则定制为基础,以进程间通信和数据库为技术保证,通过不同进程各司其职,相互协同参与,从而高效灵活地确保交易数据在各个系统之间的一致性。
8、,以保证资金安全。发明内容0006 本发明公开了一种数据一致性恢复方法,包括:分配数据挖掘的任务;根据所述任务,挖掘源数据库中的数据;根据业务规则,从源数据库中的数据和目标数据库中的数据中选择出结果数据;以及将源数据库中的数据和目标数据中的数据中统一为所述结果数据。0007 根据本发明的一个方面的数据一致性恢复方法,其中挖掘源数据库中的数据的步骤是以多进程并发执行的,并且控制进程的数量以及控制单一进程内部的执行速率。0008 根据本发明的一个方面的数据一致性恢复方法,其中所述业务规则以配置文件的形式存储在恢复系统中,配置文件采用内存映射的方法,具备动态调整并生效的功能。0009 根据本发明的一。
9、个方面的数据一致性恢复方法,其中在选择出结果数据之后,还包括对源数据库中的数据、目标数据库中的数据以及结果数据进行备份的步骤。0010 根据本发明的一个方面的数据一致性恢复方法,其中将源数据库中的数据和目标说 明 书CN 103136248 A2/4页4数据库中的数据中统一为所述结果数据的步骤又包括以下步骤:如果根据业务规则,源数据库中的数据应该得到保留,则将目标数据库中的数据更改为结果数据,以及如果根据业务规则,目标数据库中的数据应该得到保留,则将源数据库中的数据更改为结果数据。0011 根据本发明的一个方面的数据一致性恢复方法,其中分配数据挖掘的任务包括针对发生故障的时间段将时间分片,并将。
10、时间分片顺序存储起来,使得每一任务对应一时间片。0012 根据本发明的一个方面的数据一致性恢复方法,其中挖掘源数据库中的数据的步骤包括挖掘所述源数据库中符合任务所对应的时间片的数据。0013 根据本发明的一个方面的数据一致性恢复方法还包括根据要求暂停、恢复或终止所述方法的各步骤。0014 根据本发明的一个方面的数据一致性恢复方法还包括在将源数据库中的数据和目标数据库中的数据中统一为所述结果数据后向用户汇报任务完成的步骤。0015 根据本发明的一个方面的数据一致性恢复方法,其中每一任务在处理完其对应的时间片后再获取剩余的未处理的时间片进行处理,直至处理完所有的时间片。附图说明0016 通过阅读以。
11、下详细说明,并参考附图,可以对本发明有一个更全面的了解。附图中:0017 图1示出了根据本发明的恢复系统的功能模块图。0018 图2示出了根据本发明的数据一致性恢复方法。具体实施方式0019 下面结合附图对本发明的实施例作详细说明。需要注意的是,实施例中具体描述的特征不应都被理解为对实现本发明是必要的或者唯一的,本领域的人员能够理解这些特征可能是示例性的而非限定性的。0020 根据本发明的一个实施例,本发明的智能交易一致性恢复方法可以通过由五大模块来实施,分别是任务分配及进度监控模块、数据挖掘模块、冲突交易选取模块、数据备份模块、以及数据修复模块。各个模块之间的相互之间的关系如图1所示。002。
12、1 图1,源库(即源数据库)是指当发生系统切换时接管交易信息的数据库,目标库(即目标数据库)是指系统故障前所使用的数据库,当原来的系统从故障中恢复后各系统中分散的交易数据需经过处理并集中到该库中,最后提供给下游的业务系统使用。备份库是指当源库与目标库中的交易数据发生冲突或不一致时,存放选取或舍弃的交易数据的数据库。箭头部分为模块与模块之间的相互调用,采用的是进程间通信;实线部分代表交易数据的流向,虚线部分代表对按照结果对源库中交易数据的修复。0022 任务分配和进度监控模块在图1中由控制器表示。这里的控制器是整个系统的总控制器,其可以多线程的模式并发地完成以下三项工作:0023 1)针对发生故。
13、障的时间段将时间分片,以任务的方式分发给数据挖掘模块。0024 2)接收下游进程报告的数据处理状况,结合总任务量向用户报告处理进度。0025 3)监控下游各进程的状态,综合各进程对任务的处理情况,综合分析当前任务结说 明 书CN 103136248 A3/4页5束状态,以判定此次一致性恢复是否处理成功。0026 数据挖掘模块在图1中由“数据挖掘”来表示。数据挖掘模块从控制器中接受任务,挖掘源库中的交易数据发送给下游进程。对其功能的详细描述如下:0027 1)分析任务信息,从源库中搜索满足条件的交易数据,打包发送给下游进程。0028 2)进行流量控制,上述搜索是以多进程并发的形式执行的。假设进程。
14、数目为N,则N实际上成为调节数据挖掘进度的比例因子。通过选取合适的比例因子N可以达到既不影响正常任务的运行又能快速地处理交易数据的目的。0029 3)接受控制进程发送来的命令(如暂停、恢复、终止),通知下游进程作相应的处理。0030 4)收集一致性处理的进度信息,报告给控制进程。0031 冲突交易选取模块在图1中由“交易选取”来表示。冲突交易选取该模块是恢复过程中业务处理的核心模块,详细描述如下:0032 1)动态读取配置的业务规则,并结合具体的故障场景智能化地选择处理策略。0033 2)接收数据挖掘模块发送来的交易数据,并把数据导入到目标库中。0034 3)如果导入交易数据时检测到发生了冲突。
15、或不一致的交易数据,则需要把目标库中的冲突或不一致的数据取出,根据业务规则从冲突或不一致的两笔交易数据中选取一笔资金安全的交易保留下来,如果最终结果选取的是源库中的数据,则使用源库中的交易数据更改目标库中的数据。如果最终结果选取的是目标库中的数据,则对目标库中的数据保持不变。不论哪种情况下,最终结果选取的数据记为结果数据。0035 4)将这两笔冲突的交易连同选取的结果数据发送给下游备份进程。0036 结果数据备份模块在图1中由“数据备份”来表示。结果数据备份模块接受冲突交易选取模块发送来的数据,根据最终的选取结果把交易数据备份为三份:源库数据、目标库数据、结果数据。这些备份的交易数据将为下游系。
16、统核对数据或进行交易差错争议处理时提供参考。0037 交易数据修复模块在图1中由“数据修复”来表示。当整个任务的冲突处理完成之后,如果结果数据不是源库数据,则交易数据修复模块根据备份库中的结果数据去更改源库中对应的交易数据,这样就保证了当整个过程处理完之后,不同系统之间的交易数据的一致性。0038 上述的模块都可被设计成多进程并发的模式。每个模块的功能单一,各司其职,相互配合,共同完成交易一致性恢复的任务。通过参数的配置可以同时实现多个源库到多个目标库的恢复处理,提高了并行度。此外,在整体架构不需要改变的前提之下,仅需要修改配置的业务规则,即可实现在不同故障场景下,使用不同的交易数据恢复策略,。
17、从而扩展了本发明的适用范围。0039 图2示出了根据本发明的一个实施例的数据一致性恢复方法。为了实现系统在切换之后在各个数据库中的数据的一致性,首先要通过整个恢复系统的总体控制部分对整个恢复过程进行控制。如图2所示,恢复过程的第一步是分配任务(步骤101)。假设在某日3时整至4时整的一个小时内一正在使用的数据库A(目标库)发生了故障,此时系统自动切换到数据库B(源库)。按照通行的方法,在恢复时是对整个这一小时内的数据内容一次性地进行处理,但是在本发明中,首先将这一小时的时间段进行分片,比如以5分钟为一个时说 明 书CN 103136248 A4/4页6间片。控制器将这些时间片顺序存储起来,每次。
18、将一个时间片内的数据发给后续步骤(数据挖掘)进行处理。这样,处理故障期间所有涉及到的数据一共需要12个独立的时间片。每一时间片由一个数据挖掘进程来处理,当处理完成该时间片之后,如果尚有未被处理的时间片,该进程再次获取一个未曾处理的时间片进行处理,直至所有的时间片都被处理完。0040 然后是数据挖掘的步骤(步骤102)。在该步骤中,首先,和时间片所占时间对应的数据被从数据库B中搜索出来。这里的搜索可以多进程的形式并发地执行,假设以N个进程执行。显然,N的数值越大,搜索的速度越快,但这样搜索任务可能会占用过多的资源从而影响系统正常运行的其它任务。相反,如果N的数值比较小,则对系统正常运行的其它任务。
19、的影响也会较小。由于不同的系统以及同一系统在不同的环境下的运行能力有差异,在这里通过对N的数值的动态调整可以很好地适应这种差异,从而提升了系统的稳定性。此外,每一进程内部的执行速率也是可控的。如果需要,在该步骤中还可以执行对整个恢复流程的暂停、恢复、终止等操作。0041 接下来是实施冲突解决(步骤103)。通过前述步骤,在特定时间内的数据库B的数据已经被挖掘(搜索)出来了,然而该数据可能与数据库A中的数据是不一致的。首先,对于不同的情况,相应的处理策略是已知的并且可以被存储在系统中。存储的形式可以是配置文件,其采用的是内存映射的方法,具备动态调整并生效的功能。因而本发明中处理策略是通过文件内存。
20、映射的方式被获取的。当出现不一致,或者称冲突时,需要根据具体情况选择处理策略判断选择出应该被保留的数据。例如,一来自数据库A的交易数据对应于一来自数据库B的交易数据,但这两笔交易数据冲突,此时通过读取配置文件获知业务规则(或者称处理策略)是保留资金安全的交易,因而来自数据库A的,资金安全的交易就被保留了下来并作为结果数据。但与结果数据不一致的来自数据库B的数据并没有被丢弃,结果数据和A数据库数据以及B数据库数据一起被备份在数据库C(备份数据库)中。0042 最后实施的是数据更新(步骤103),即将数据库A中的数据和数据中的数据B中的数据统一为所述结果数据。例如在上面提到的场景中,数据库A的数据。
21、被定为结果数据,因而数据库A的数据不需要变动,而数据库B的数据则会被由结果数据所替代。相反,如果数据库B中的数据被判断为结果数据,则在数据更新步骤中,数据库B中的数据不需要变动,而数据库A的数据则会被由结果数据所替代。无论哪种情况下,最后各个数据库中的数据的一致性都得到了保证。此时可以向用户汇报恢复任务已经完成,各个数据库中的数据是可靠的。0043 虽然附图和前面的详述中介绍了本发明的优选实施方案,但是应当理解的是,本发明并不局限于具体公布的实施方案,在不偏离权利要求规定的范围的前提下,仍然可以有多种的修改和变形。说 明 书CN 103136248 A1/2页7图1说 明 书 附 图CN 103136248 A2/2页8图2说 明 书 附 图CN 103136248 A。