本发明涉及计算机,尤其涉及一种数据补偿的方法和装置。
背景技术:
1、数据一致性复制技术是一种基于数据一致性校验及数据补偿的逻辑复制技术。数据一致性校验是用于保障源端、目标端数据一致性的一种机制,一般记录了源端、目标端数据的差异,然后参照校验结果借助数据补偿机制将这些数据差异进行补偿,从而达到数据复制一致性的目的。在该数据一致性复制技术中,所复制的数据对象一般称为源端数据,所修复的目标端数据一般称为目标端数据。由于该数据一致性复制技术所复制的源端和目标端完全解耦,对现有应用实现逻辑无入侵,因此可以很好的应用于数据的读写分离、多地多活容灾、数据治理等的应用场景。
2、在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
3、由于这种数据一致性复制技术的源端和目标端都是可读写的数据源,因此有可能因为一致性复制期间的数据变更引入差异,本应该源端与目标端数据内容一致的数据,产生了差异。而此时目标端可能已经实际承接业务接入,因此,如何在不影响目标端业务受理和数据一致性复制的前提下,快速进行数据补偿是目前数据一致性复制技术的一大挑战。
技术实现思路
1、有鉴于此,本发明实施例提供一种数据补偿的方法和装置,能够在不影响现有数据复制以及尽量保证目标端应用正常业务受理的前提下,快速、准确、高效地实现对数据一致性复制系统的快速修复,且可以保证数据补偿结果的准确性。
2、为实现上述目的,根据本发明实施例的一个方面,提供了一种数据补偿的方法。
3、一种数据补偿的方法,包括:
4、获取提取源端数据和目标端数据的时间点;
5、根据所述时间点分别提取源端和目标端的数据关键信息,根据所述数据关键信息进行源端和目标端的数据一致性校验,并根据校验结果确定要进行数据补偿的目标端数据分片;
6、对每个目标端数据分片,根据所述校验结果进行源端数据提取,并将提取的源端数据加载至目标端影子表中;
7、根据所述校验结果和所述目标端影子表,对目标端正式表进行数据补偿。
8、可选地,所述方法还包括:
9、在数据补偿结束后,再次进行源端和目标端正式表的数据一致性校验,以验证数据补偿是否通过;
10、在数据补偿未通过的情况下,再次根据本发明的数据补偿的方法对所述目标端正式表进行数据补偿,直至数据补偿通过。
11、可选地,所述数据关键信息包括数据所属的数据分片及每个数据分片的最大时间戳;
12、根据所述数据关键信息进行源端和目标端的数据一致性校验包括:
13、对源端包括的每个源端数据分片,若所述源端数据分片和与所述源端数据分片对应的目标端数据分片的最大时间戳一致,则对所述源端数据分片和所述目标端数据分片的数据哈希值进行比较,在数据哈希值相同的情况下,数据一致性校验通过;
14、若所述源端数据分片的最大时间戳大于与所述源端数据分片对应的目标端数据分片的最大时间戳,则所述源端数据分片和所述目标端数据分片的数据一致性校验不通过;
15、若所述源端数据分片的最大时间戳大于所述时间点,则重新获取提取源端数据和目标端数据的时间点,并将所述源端数据对应的应用终止业务受理。
16、可选地,获取提取源端数据和目标端数据的时间点包括:
17、获取源端数据的最大时间戳作为提取源端数据与目标端数据的时间点;
18、重新获取提取源端数据和目标端数据的时间点包括:
19、将所述源端数据分片的最大时间戳作为提取源端数据和目标端数据的时间点。
20、可选地,根据所述校验结果和所述目标端影子表,对目标端正式表进行数据补偿包括:
21、根据所述校验结果和所述目标端影子表,从所述目标端影子表中确定待补偿数据,所述待补偿数据对应有业务状态,且所述业务状态包括业务终态和非业务终态,所述业务终态为业务的最终状态;
22、对处于业务终态的待补偿数据,根据所述待补偿数据对所述目标端正式表进行更新;
23、对处于非业务终态的待补偿数据,按照所述待补偿数据对应的业务要素判断对目标端正式表进行的数据补偿操作。
24、可选地,按照所述待补偿数据对应的业务要素判断对目标端正式表进行的数据补偿操作包括:
25、若在进行目标端正式表数据补偿时,所述目标端正式表中不存在所述待补偿数据,则将所述待补偿数据插入至所述目标端正式表中;
26、若在进行目标端正式表数据补偿时,所述目标端正式表中存在所述待补偿数据,但所述目标端正式表中的待补偿数据的业务状态与所述目标端影子表中的待补偿数据的业务状态不同,则根据所述目标端影子表中的待补偿数据更新所述目标端影子表,并将所述目标端影子表中的待补偿数据标记为无效。
27、可选地,所述方法还包括:
28、在对目标端正式表进行数据补偿时,停止源端和目标端的应用的业务受理,并记录停止业务受理的时长。
29、可选地,进行源端数据提取和将提取的源端数据加载至目标端影子表是并发处理的。
30、根据本发明实施例的另一方面,提供了一种数据补偿的装置。
31、一种数据补偿的装置,包括:
32、时间点确定模块,用于获取提取源端数据和目标端数据的时间点;
33、一致性校验模块,用于根据所述时间点分别提取源端和目标端的数据关键信息,根据所述数据关键信息进行源端和目标端的数据一致性校验,并根据校验结果确定要进行数据补偿的目标端数据分片;
34、数据加载模块,用于对每个目标端数据分片,根据所述校验结果进行源端数据提取,并将提取的源端数据加载至目标端影子表中;
35、数据补偿模块,用于根据所述校验结果和所述目标端影子表,对目标端正式表进行数据补偿。
36、根据本发明实施例的又一方面,提供了一种数据补偿的电子设备。
37、一种数据补偿的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的数据补偿的方法。
38、根据本发明实施例的再一方面,提供了一种计算机可读介质。
39、一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的数据补偿的方法。
40、上述发明中的一个实施例具有如下优点或有益效果:通过获取提取源端数据和目标端数据的时间点;根据该时间点分别提取源端和目标端的数据关键信息,根据数据关键信息进行源端和目标端的数据一致性校验,并根据校验结果确定要进行数据补偿的目标端数据分片;对每个目标端数据分片,根据校验结果进行源端数据提取,并将提取的源端数据加载至目标端影子表中;根据校验结果和目标端影子表,对目标端正式表进行数据补偿操作的技术方案,来进行数据一致性处理,可以在不影响现有数据复制以及尽量保证目标端应用正常业务受理的前提下,快速、准确、高效地实现对数据一致性复制系统的快速修复。通过在数据补偿结束后,再进行源端和目标端正式表数据一致性校验,验证是否数据补偿完成通过,可以保证数据一致性处理结果的准确性。
41、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。