一种基于Q复制的重要数据恢复方法及装置与流程

文档序号:32669603发布日期:2022-12-24 02:07阅读:33来源:国知局
一种基于Q复制的重要数据恢复方法及装置与流程
一种基于q复制的重要数据恢复方法及装置
技术领域
1.本技术属于数据库恢复技术领域,具体地讲,涉及一种基于q复制的重要数据恢复方法及装置。


背景技术:

2.随着银行it架构转型的深入,研发测试的节奏加快,在研发测试环境当中,数据库的数据变更和采用技术手段进行验证测试的场景越来越多,表数据的安全和稳定变得越发重要。现有的数据保护办法一般是增加权限控制,即对某些重要字段的增删改进行控制使得这些字段无法被修改。
3.但是,以db2为例,权限控制只能精确到对某个字段的增删改控制,无法做到对字段中具体值的控制,也难以定位到修改字段值的具体用户,导致一些公共应用的开关、批量日期、日志切换标志等重要参数被修改,甚至被不定期反复地修改,从而导致大面积数据污染及环境不可用。因此需要一种能对重要表的字段值进行保护,并能方便追溯到修改字段值的具体时间和用户的方法。
4.qr(q复制,是ibm推出的基于mq消息队列的数据库之间高效异步数据复制的中间件)为检测数据库数据变化并获取变化前后主键和数据的数据库中间件产品;kafka消息队列是一种开源的分布式消息系统,运行在集群上,主要用于存储和处理活跃的流式数据;drp落库程序以事务为单位,准实时地将获取到的sql及数据传递、装载到目标数据库中,以达到源库和目标库数据保持同步的目的。


技术实现要素:

5.本技术提供了一种基于qr的重要数据恢复方法及装置,以至少解决当前现有技术中对于数据库的权限控制只能精确到对某个字段的增删改控制,无法做到对字段中具体值的控制,也难以定位到修改字段值的具体用户的问题。
6.根据本技术的第一个方面,提供了一种基于qr的重要数据恢复方法,包括:
7.当检测到源数据库中数据发生变动时,获取变化前后的目标数据的key和value值;
8.根据key和value值判断是否保护表和保护值,并根据判断结果以及变化前的key和value值生成恢复数据;
9.根据恢复数据完成数据恢复。
10.在一实施例中,获取变化前后的目标数据的key和value值,包括:
11.获取变化前的json格式的key和value值;
12.获取变化后的json格式的key和value值。
13.在一实施例中,根据key和value值判断是否保护表和保护值,包括:
14.对key和value值进行解析;
15.获取预先加载的配置文件;
16.根据配置文件和解析后的key和value值判断是否保护表和保护值。
17.在一实施例中,根据配置文件和解析后的key和value值判断是否保护表和保护值,包括:
18.判断发生修改的字段是否为保护字段;
19.如果是,判断修改后的值是否为非法字段值。
20.在一实施例中,根据判断结果以及变化前的key和value值生成恢复数据,包括:
21.如果判断结果为保护表及值,则启动恢复数据sql生成程序,具体为,根据变化前的key和value值生成恢复数据的sql语句。
22.在一实施例中,根据恢复数据完成数据恢复,包括:
23.将恢复数据下发到kafka消息队列;
24.通过drp落库程序将恢复数据同步至目标数据库完成数据恢复。
25.在一实施例中,重要数据恢复方法还包括:
26.在将恢复数据下发到kafka消息队列之前,读取qr数据中的用户、操作类型、操作时间和数据更新信息登记至追溯日志并告警。
27.根据本技术的另一个方面,还提供了一种基于qr的重要数据恢复装置,包括:
28.检测单元,用于当检测到源数据库中数据发生变动时,获取变化前后的目标数据的key和value值;
29.恢复数据生成单元,用于根据key和value值判断是否保护表和保护值,并根据判断结果以及变化前的key和value值生成恢复数据;
30.数据恢复单元,用于根据恢复数据完成数据恢复。
31.在一实施例中,检测单元包括:
32.用于获取变化前的json格式的key和value值;
33.用于获取变化后的json格式的key和value值。
34.在一实施例中,恢复数据生成单元包括:
35.用于对key和value值进行解析;
36.用于获取预先加载的配置文件;
37.用于根据配置文件和解析后的key和value值判断是否保护表和保护值。
38.在一实施例中,根据配置文件和解析后的key和value值判断是否保护表和保护值,包括:
39.判断发生修改的字段是否为保护字段;
40.如果是,判断修改后的值是否为非法字段值。
41.在一实施例中,根据判断结果以及变化前的key和value值生成恢复数据,包括:
42.如果判断结果为保护表及值,则启动恢复数据sql生成程序,具体为,根据变化前的key和value值生成恢复数据的sql语句。
43.在一实施例中,根据恢复数据完成数据恢复,包括:
44.将恢复数据下发到kafka消息队列;
45.通过drp落库程序将恢复数据同步至目标数据库完成数据恢复。
46.在一实施例中,重要数据恢复方法还包括:
47.在将恢复数据下发到kafka消息队列之前,读取qr数据中的用户、操作类型、操作
时间和数据更新信息登记至追溯日志并告警。
48.根据本技术的另一个方面,还包括一种基于qr的重要数据恢复装置,包括:
49.检测单元,用于当检测到源数据库中数据发生变动时,获取变化前后的目标数据的key和value值;
50.恢复数据生成单元,用于根据key和value值判断是否保护表和保护值,并根据判断结果以及变化前的key和value值生成恢复数据;
51.数据恢复单元,用于根据恢复数据完成数据恢复。
52.在一实施例中,检测单元包括:
53.变化前值获取模块,用于获取变化前的json格式的key和value值;
54.变化后值获取模块,用于获取变化后的json格式的key和value值。
55.在一实施例中,恢复数据生成单元包括:
56.解析模块,用于对key和value值进行解析;
57.获取模块,用于获取预先加载的配置文件;
58.判断模块,用于根据配置文件和解析后的key和value值判断是否保护表和保护值。
59.在一实施例中,判断模块包括:
60.保护字段判断模块,用于判断发生修改的字段是否为保护字段。
61.非法判断模块,用于如果是,判断修改后的值是否为非法字段值。
62.在一实施例中,恢复数据生成单元包括:
63.生成模块,用于如果判断结果为保护表及值,则启动恢复数据sql生成程序,具体为,根据变化前的key和value值生成恢复数据的sql语句。
64.在一实施例中,数据恢复单元包括:
65.下发模块,用于将恢复数据下发到kafka消息队列;
66.同步恢复模块,用于通过drp落库程序将恢复数据同步至目标数据库完成数据恢复。
67.本技术通过在qr之后增加一个保护模块,在保护模块中内载保护策略和配置文件,通过监听数据库中的数据发生变动,记录变化前后的信息,然后保护模块执行数据恢复,实现既能对重要表数据进行保护,又能方便追溯到修改字段值的具体时间和用户的目的。
附图说明
68.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
69.图1为本技术提供的一种基于qr的重要数据恢复方法流程图。
70.图2为本技术实施例中获取变化前后的目标数据的key和value值的方法流程图。
71.图3为本技术实施例中根据key和value值判断是否保护表和保护值的方法流程图。
72.图4为本技术实施例中根据配置文件和解析后的key和value值判断是否保护表和保护值的方法流程图。
73.图5为本技术实施例中根据恢复数据完成数据恢复的方法流程图。
74.图6为本技术实施例中数据恢复系统框图。
75.图7为本技术实施例中数据恢复方法具体步骤。
76.图8为本技术提供的一种基于qr的重要数据恢复装置结构框图。
77.图9为本技术实施例中检测单元的结构框图。
78.图10为本技术实施例中恢复数据生成单元的结构框图。
79.图11为本技术实施例中判断模块的结构框图。
80.图12为本技术实施例中数据恢复单元的结构框图。
81.图13为本技术实施例中一种电子设备的具体实施方式。
具体实施方式
82.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
83.以db2为例,权限控制只能精确到对某个字段的增删改控制,无法做到对字段中具体值的控制,也难以定位到修改字段值的具体用户,导致一些公共应用的开关、批量日期、日志切换标志等重要参数被修改,甚至被不定期反复地修改,从而导致大面积数据污染及环境不可用。因此需要一种能对重要表的字段值进行保护,并能方便追溯到修改字段值的具体时间和用户的方法。
84.为了解决上述问题,本技术提供了一种基于qr的重要数据恢复方法,如图1所示,包括:
85.s101:当检测到源数据库中数据发生变动时,获取变化前后的目标数据的key和value值。
86.s102:根据key和value值判断是否保护表和保护值,并根据判断结果以及变化前的key和value值生成恢复数据。
87.s103:根据恢复数据完成数据恢复。
88.在一实施例中,获取变化前后的目标数据的key和value值,如图2所示,包括:
89.s201:获取变化前的json格式的key和value值。
90.s202:获取变化后的json格式的key和value值。
91.在一实施例中,根据key和value值判断是否保护表和保护值,如图3所示,包括:
92.s301:对key和value值进行解析。
93.s302:获取预先加载的配置文件。
94.s303:根据配置文件和解析后的key和value值判断是否保护表和保护值。
95.在一实施例中,根据配置文件和解析后的key和value值判断是否保护表和保护值,如图4所示,包括:
96.s401:判断发生修改的字段是否为保护字段。
97.s402:如果是,判断修改后的值是否为非法字段值。
98.在一实施例中,根据判断结果以及变化前的key和value值生成恢复数据,包括:
99.如果判断结果为保护表及值,则启动恢复数据sql生成程序,具体为,根据变化前的key和value值生成恢复数据的sql语句。
100.在一实施例中,根据恢复数据完成数据恢复,如图5所示,包括:
101.s501:将恢复数据下发到kafka消息队列。
102.s502:通过drp落库程序将恢复数据同步至目标数据库完成数据恢复。
103.在一实施例中,重要数据恢复方法还包括:
104.在将恢复数据下发到kafka消息队列之前,读取qr数据中的用户、操作类型、操作时间和数据更新信息登记至追溯日志并告警。
105.在一具体实施例中,如图6所示,一种基于qr的重要数据恢复系统具体包括以下模块:
106.配置文件101,保护策略102,qr中间件103,kafka消息队列和drp落库104,日志模块105,告警模块106,源数据库107和目标数据库108。
107.首先,将需要保护的表名、字段名和字段值配置到配置文件101,并通过保护策略102加载到内存中。
108.当源数据库107发生数据变动时,qr中间件103监测到并生成记录变化前后的key和value值,按原有流程正常下发到kafka消息队列,然后通过drp落库程序同步更新到目标数据库108中。
109.保护策略102读取配置文件101,同时对qr中间件103生成的key、value进行解析,根据预先配置的控制策略分别对表名、字段名及数据进行逐级判断。
110.如果变更的表名不在受控清单中,则不做任何操作,继续下一条记录的解析处理。
111.如果表名在受控清单中,则比对字段名是否在受控清单中,如果不在受控清单中,则不做任何操作,继续下一条记录的解析处理。
112.如果字段名在受控清单中,则比对变更数据是否符合配置清单中预定的规则,如果符合规则,则不做任何操作,继续下一条记录的解析处理。
113.如果表名、字段名都匹配,且数值不符合预先设定的规则,则保护策略102根据before_key和before_value生成恢复数据sql,通过jdbc等方式连接源数据库107,执行恢复数据sql,并通过日志模块105和告警模块106分别进行日志登记和告警通知。
114.源数据库107执行恢复数据sql后,qr中间件103例行将变更数据下发给kafka消息队列和drp落库104,将恢复数据sql更新结果同步到目标数据库108中。
115.基于上述系统,在一具体实施例中,如图7所示,当qr监测到源数据库数据变动的时候,生成记录变化前后的json格式的before_key,after_key,before_value和after_value,存储于保护模块中的保护策略根据加载的配置文件,对after_key、after_value进行解析,判断是否保护表和保护值。如果是保护表,则判断修改的字段是否为保护字段,如果修改的是保护字段,则判断修改后的值是否是非法字段值,否则,不执行任何操作。如果修改后的值是非法字段值,保护策略根据before_key和before_value生成恢复数据sql,保护策略链接源数据库,执行恢复数据sql,将数据下发到kafka消息队列,通过drp落库程序将数据同步到目标数据库。保护策略读取qr数据中的用户、操作类型、操作时间和数据更新
信息,登记追溯日志并告警。
116.基于同一发明构思,本技术实施例还提供了一种基于qr的重要数据恢复装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于基于qr的重要数据恢复装置解决问题的原理与基于qr的重要数据恢复方法相似,因此基于qr的重要数据恢复装置的实施可以参见基于qr的重要数据恢复方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
117.根据本技术的另一个方面,还提供了一种基于qr的重要数据恢复装置,如图8所示,包括:
118.检测单元801,用于当检测到源数据库中数据发生变动时,获取变化前后的目标数据的key和value值;
119.恢复数据生成单元802,用于根据key和value值判断是否保护表和保护值,并根据判断结果以及变化前的key和value值生成恢复数据;
120.数据恢复单元803,用于根据恢复数据完成数据恢复。
121.在一实施例中,如图9所示,检测单元801包括:
122.变化前值获取模块901,用于获取变化前的json格式的key和value值;
123.变化后值获取模块902,用于获取变化后的json格式的key和value值。
124.在一实施例中,如图10所示,恢复数据生成单元802包括:
125.解析模块1001,用于对key和value值进行解析;
126.获取模块1002,用于获取预先加载的配置文件;
127.判断模块1003,用于根据配置文件和解析后的key和value值判断是否保护表和保护值。
128.在一实施例中,如图11所示,判断模块1003包括:
129.保护字段判断模块1101,用于判断发生修改的字段是否为保护字段。
130.非法判断模块1102,用于如果是,判断修改后的值是否为非法字段值。
131.在一实施例中,恢复数据生成单元802包括:
132.生成模块,用于如果判断结果为保护表及值,则启动恢复数据sql生成程序,具体为,根据变化前的key和value值生成恢复数据的sql语句。
133.在一实施例中,如图12所示,数据恢复单元803包括:
134.下发模块1201,用于将恢复数据下发到kafka消息队列;
135.同步恢复模块1202,用于通过drp落库程序将恢复数据同步至目标数据库完成数据恢复。
136.在一实施例中,重要数据恢复装置还包括:
137.追溯告警模块,用于在将恢复数据下发到kafka消息队列之前,读取qr数据中的用户、操作类型、操作时间和数据更新信息登记至追溯日志并告警。
138.本技术通过在qr之后增加一个保护模块,在保护模块中内载保护策略和配置文件,通过监听数据库中的数据变动,记录变化前后的信息,然后保护模块执行数据恢复,实现既能对重要表数据进行保护,又能方便追溯到修改字段值的具体时间和用户的目的。
139.本技术的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设
备的具体实施方式,参见图13,所述电子设备具体包括如下内容:
140.处理器(processor)1301、内存1302、通信接口(communications interface)1303、总线1304和非易失性存储器1305;
141.其中,所述处理器1301、内存1302、通信接口1303通过所述总线1304完成相互间的通信;
142.所述处理器1301用于调用所述内存1302和非易失性存储器1305中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
143.s101:当检测到源数据库中数据发生变动时,获取变化前后的目标数据的key和value值。
144.s102:根据key和value值判断是否保护表和保护值,并根据判断结果以及变化前的key和value值生成恢复数据。
145.s103:根据恢复数据完成数据恢复。
146.本技术的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
147.s101:当检测到源数据库动数时,获取变化前后的目标数据的key和value值。
148.s102:根据key和value值判断是否保护表和保护值,并根据判断结果以及变化前的key和value值生成恢复数据。
149.s103:根据恢复数据完成数据恢复。
150.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1