CN113297220B - 数据的恢复方法、装置、计算机可读存储介质以及处理器 - Google Patents
数据的恢复方法、装置、计算机可读存储介质以及处理器 Download PDFInfo
- Publication number
- CN113297220B CN113297220B CN202110559466.5A CN202110559466A CN113297220B CN 113297220 B CN113297220 B CN 113297220B CN 202110559466 A CN202110559466 A CN 202110559466A CN 113297220 B CN113297220 B CN 113297220B
- Authority
- CN
- China
- Prior art keywords
- target
- instruction
- data table
- character string
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000008569 process Effects 0.000 description 13
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据的恢复方法、装置、计算机可读存储介质以及处理器,该方法包括:在目标数据库执行预定指令时,对预定指令进行解析,得到目标数据表的名称以及目标字符串,目标字符串包括一一对应的目标字段和目标数值,目标字段至少包括预定指令中的对应字段;在接收到将目标数据库恢复至预定指令之前的恢复请求的情况下,根据预定指令、目标数据表的名称以及目标字符串,生成预定指令对应的恢复指令;执行恢复指令,以使得目标数据库中的数据恢复。该方法无需人工编程,即可实现目标数据表中的数据的自动恢复,降低了对编程人员的要求,提高了数据恢复的效率。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据的恢复方法、装置、计算机可读存储介质以及处理器。
背景技术
随着企业业务不断发展,传统的技术架构已经不能满足业务需求,大多数应用系统采用分布式架构,数据分布在多个数据库中,用户一次完整的交互需要跨多库进行操作。
为保证分布式事务一致性,需要提供业务补偿恢复机制,一般需要开发人员针对不同的业务场景编写不同的业务逻辑实现补偿操作,这就要求开发人员不仅掌握正常的业务逻辑,同时还需要对补偿流程也要非常熟悉,需要重新编程,不能做到自动化。
因此,亟需一种无需编程人员重新编程,自动生成恢复数据的方法,以简化分布式架构下数据的一致性的解决方式。
在背景技术部分中公开的以上信息只是用来加强对本文所描述技术的背景技术的理解,因此,背景技术中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在本国已知的现有技术。
发明内容
本申请的主要目的在于提供一种数据的恢复方法、装置、计算机可读存储介质以及处理器,以解决现有技术中的数据库业务的数据恢复需要人工编程的问题。
根据本发明实施例的一个方面,提供了一种数据的恢复方法,包括:在目标数据库执行预定指令时,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,所述目标字符串包括一一对应的目标字段和目标数值,所述目标字段至少包括所述预定指令中的对应字段;在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令;执行所述恢复指令,以使得所述目标数据库中的数据恢复。
可选地,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,包括:解析所述预定指令,得到所述目标数据表的名称;根据所述目标数据表的名称,获取所述目标数据表的表结构;根据所述表结构和所述预定指令,至少确定与所述预定指令中的数值对应的字段为所述目标字段;根据所述预定指令的类型,确定所述目标字段对应的所述目标数值;根据所述目标数值和所述目标字段生成所述目标字符串。
可选地,根据所述预定指令的类型,确定所述目标数值,包括:在所述预定指令为插入指令或者删除指令的情况下,确定所述目标数值为所述预定指令中的对应数值。
可选地,在所述预定指令为更新指令的情况下,根据所述表结构和所述预定指令,至少确定与所述预定指令中的数值对应的所述字段为所述目标字段,包括:根据所述表结构,确定对应的主键字段以及所有的非主键字段;确定所述主键字段以及所有的所述非主键字段为所述目标字段。
可选地,在所述预定指令为更新指令的情况下,根据所述预定指令的类型,确定所述目标字段对应的所述目标数值,包括:确定所述非主键字段对应的目标数值为所述目标数据表中的记录数值;确定所述主键字段对应的第一目标数值,所述第一目标数值为所述目标数据表中的记录数值,根据所述目标数值和所述目标字段生成所述目标字符串,包括:根据所述主键字段和所述第一目标数值生成第一目标字符串;根据所述非主键字段和对应的所述目标数值生成第二目标字符串。
可选地,在所述更新指令中修改的字段包括所述主键字段的情况下,根据所述预定指令的类型,确定所述目标字段对应的所述目标数值,还包括:确定所述主键字段对应的第二目标数值,其中,所述第二目标数值为所述更新指令中的对应数值,根据所述目标数值和所述目标字段生成所述目标字符串,还包括:根据所述目标字段和所述第二目标数值生成第三目标字符串。
可选地,所述方法还包括:将所述预定指令的名称、所述目标数据表的名称以及所述目标字符串存储至第一辅助数据表。
可选地,所述方法还包括:在对所述目标数据库执行所述预定指令时,生成所述预定指令对应的指令编号;将所述指令编号存储至第二辅助数据表。
可选地,在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令,包括:根据所述恢复请求,从所述第二辅助数据表中获取对应的所述指令编号;根据所述指令编号,从所述第一辅助数据表中提取对应的所述预定指令、所述目标数据表的名称以及所述目标字符串;根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述恢复指令。
可选地,所述预定指令和所述恢复指令均为SQL指令。
根据本发明实施例的另一方面,还提供了一种数据的恢复装置,包括:解析单元,用于在目标数据库执行预定指令时,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,所述目标字符串包括一一对应的目标字段和目标数值,所述目标字段至少包括所述预定指令中的对应字段;第一生成单元,用于在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令;执行单元,用于执行所述恢复指令,以使得所述目标数据库中的数据恢复。
根据本发明实施例的再一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任意一种所述的方法。
根据本发明实施例的又一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的方法。
在本发明实施例中,上述的恢复方法中,在目标数据库执行预定指令时,对预定指令进行解析,得到预定指令对应执行的目标数据表的名称以及目标字符串;之后,在接收到恢复请求的情况下,根据预定指令、目标数据表的名称以及目标字符串,生成恢复指令;最后,执行恢复指令,将目标数据表的数据恢复至预定指令执行之前的状态。该方法无需人工编程,即可实现目标数据表中的数据的自动恢复,降低了对编程人员的要求,提高了数据恢复的效率。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请数据的恢复方法的实施例的流程示意图;以及
图2示出了根据本申请数据的恢复装置的实施例的流程示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
正如背景技术中所说的,现有技术中的数据库业务的数据恢复需要人工编程,为了解决上述问题,本申请的一种典型的实施方式中,提供了一种数据的恢复方法、装置、计算机可读存储介质以及处理器。
根据本申请的实施例,提供了一种数据的恢复方法。
图1是根据本申请实施例的数据的恢复方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,在目标数据库执行预定指令时,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,所述目标字符串包括一一对应的目标字段和目标数值,所述目标字段至少包括所述预定指令中的对应字段;
步骤S102,在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令;
步骤S103,执行所述恢复指令,以使得所述目标数据库中的数据恢复。
上述的恢复方法中,在目标数据库执行预定指令时,对预定指令进行解析,得到预定指令对应执行的目标数据表的名称以及目标字符串;之后,在接收到恢复请求的情况下,根据预定指令、目标数据表的名称以及目标字符串,生成恢复指令;最后,执行恢复指令,将目标数据表的数据恢复至预定指令执行之前的状态。该方法无需人工编程,即可实现目标数据表中的数据的自动恢复,降低了对编程人员的要求,提高了数据恢复的效率。
并且,上述方法减少了开发人员不必要的补偿逻辑开发,数据库恢复指令自动生成,降低误操作概率,降低开发难度,提高开发效率;对关键数据库指令操作,提供自动记录指令操作日志的功能,便于问题排查。同时该操作等价于数据逻辑备份,保证数据安全;该方案相对独立且比较通用,适合更多的场景使用,如:日常系统升级,针对标准数据部署操作,不需要单独提供回退SQL等指令语句。
本申请的一种实施例中,对所述预定指令进行解析,得到数据表的名称以及目标字符串,包括:解析所述预定指令,得到所述目标数据表的名称;根据所述目标数据表的名称,获取所述目标数据表的表结构;根据所述表结构和所述预定指令,至少确定与所述预定指令中的数值对应的字段为所述目标字段;根据所述预定指令的类型,确定所述目标字段对应的所述目标数值;根据所述目标数值和所述目标字段生成所述目标字符串。该方法进一步保证了得到的目标字符串以及目标数据表的准确性,从而进一步保证了生成的恢复指令的准确性,进而进一步保证了目标数据表的数据可以准确地恢复至预定指令执行之前的状态。
具体的应用中,本申请的一种实施例中,根据所述预定指令的类型,确定所述目标数值,包括:在所述预定指令为插入指令(insert指令)或者删除指令(delete指令)的情况下,确定所述目标数值为所述预定指令中的对应数值。对于插入指令来说,其通常为插入一条完整的指令,插入指令中包括具体插入的数值,而恢复指令应该是将插入的数据删除,即对应删除插入的数值,所以,目标数值为对应插入指令中的对应数值。对于删除指令来说,其通常为删除一条完整的数据,删除指令中包括具体删除的数值,而恢复指令应该是将删除的数据再重新插入,即对应插入删除的数值,所以,目标数值为对应删除指令中的对应数值。
实际的应用过程中,预定指令不仅可以为插入指令或者删除指令,其还可以为更新指令,对于更新指令来说,其一般来说更新一个数值,所以其实现过程较为复杂。为了更准确且高效地恢复更新指令对应的数据,本申请的一种实施例中,在所述预定指令为更新指令的情况下,根据所述表结构和所述预定指令,至少确定与所述预定指令中的数值对应的所述字段为所述目标字段,包括:根据所述表结构,确定对应的主键字段以及所有的非主键字段;确定所述主键字段以及所有的所述非主键字段为所述目标字段。
当然,本申请中对于预定指令为更新指令这一情况来说,确定目标数值的过程中,并不限于将目标数据表的表结构的主键字段以及非主键字段均作为目标字段,还可以是将更新指令中对应的更新数值对应的字段作为目标字段,只是这一方式相对上段的方式来说生成恢复指令以及根据恢复指令恢复数据的过程较为繁杂。
本申请的另一种实施例中,在所述预定指令为更新指令的情况下,根据所述预定指令的类型,确定所述目标字段对应的所述目标数值,包括:确定所述非主键字段对应的目标数值为所述目标数据表中的记录数值;确定所述主键字段对应的第一目标数值,所述第一目标数值为所述目标数据表中的记录数值。根据所述目标数值和所述目标字段生成所述目标字符串,包括:根据所述主键字段和所述第一目标数值生成第一目标字符串;根据所述非主键字段和对应的所述目标数值生成第二目标字符串。对于更新指令的恢复过程来说,其实际是将数据恢复至执行更新指令之前的状态,因此,将更新指令执行前的目标数据表中各字段对应的记录值作为目标数值,这样后续更加这些目标数值,可以更高效地将目标数据表恢复至更新指令执行前的状态,即将目标数据表中的数据恢复为之前的记录值。
对于在所述更新指令中修改的字段包括所述主键字段的情况下,根据所述预定指令的类型,确定所述目标字段对应的所述目标数值,还包括:确定所述主键字段对应的第二目标数值,其中,所述第二目标数值为所述更新指令中的对应数值,根据所述目标数值和所述目标字段生成所述目标字符串,还包括:根据所述目标字段和所述第二目标数值生成第三目标字符串。这样的方式,在更新指令中修改的字段包括主键字段的情况下,可以通过原主键字段对应的数值和更新指令中对应的数值,确定更新后的数据与原数据对应关系,从而可以避免因为主键字段的更新,导致原始表中的记录数值和更新指令中的数值的难以对应关联,数据的恢复难度较大的问题。
为了更加高效准确地恢复数据,本申请的一种实施例中,所述方法还包括:将所述预定指令的名称、所述目标数据表的名称以及所述目标字符串存储至第一辅助数据表。后续可以根据该辅助数据表进行查询来获取对应的信息即可。
本申请的又一种实施例中,所述方法还包括:在对所述目标数据库执行所述预定指令时,生成所述预定指令对应的指令编号;将所述指令编号存储至第二辅助数据表。该方法中,对指令进行编号,生成对应的指令编号,后续恢复数据时可以更加高效地根据指令编号查找到对应的预定指令,从而进一步提升数据的恢复效率。
为了更加高效准确地恢复数据,本申请的一种实施例中,在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令,包括:根据所述恢复请求,从所述第二辅助数据表中获取对应的所述指令编号;根据所述指令编号,从所述第一辅助数据表中提取对应的所述预定指令、所述目标数据表的名称以及所述目标字符串;根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述恢复指令。
本申请的再一种实施例中,上述预定指令和所述恢复指令均为SQL指令,即上述预定指令和所述恢复指令均SQL语句。当然,实际的应用过程中,恢复指令和预定指令还可以为现有技术中的其他可行的语句。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种数据的恢复装置,需要说明的是,本申请实施例的数据的恢复装置可以用于执行本申请实施例所提供的用于数据的恢复方法。以下对本申请实施例提供的数据的恢复装置进行介绍。
图2是根据本申请实施例的数据的恢复装置的示意图。如图2所示,该装置包括:
解析单元10,用于在目标数据库执行预定指令时,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,所述目标字符串包括一一对应的目标字段和目标数值,所述目标字段至少包括所述预定指令中的对应字段;
第一生成单元20,用于在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令;
执行单元30,用于执行所述恢复指令,以使得所述目标数据库中的数据恢复。
上述的恢复装置中,解析单元在目标数据库执行预定指令时,对预定指令进行解析,得到预定指令对应执行的目标数据表的名称以及目标字符串;第一生成单元在接收到恢复请求的情况下,根据预定指令、目标数据表的名称以及目标字符串,生成恢复指令;执行单元执行恢复指令,将目标数据表的数据恢复至预定指令执行之前的状态。该装置无需人工编程,即可实现目标数据表中的数据的自动恢复,降低了对编程人员的要求,提高了数据恢复的效率。
本申请的一种实施例中,解析单元包括:解析模块,用于解析所述预定指令,得到所述目标数据表的名称;第一获取模块,用于根据所述目标数据表的名称,获取所述目标数据表的表结构;第一确定模块,用于根据所述表结构和所述预定指令,至少确定与所述预定指令中的数值对应的字段为所述目标字段;第二确定模块,用于根据所述预定指令的类型,确定所述目标字段对应的所述目标数值;生成模块,用于根据所述目标数值和所述目标字段生成所述目标字符串。该装置进一步保证了得到的目标字符串以及目标数据表的准确性,从而进一步保证了生成的恢复指令的准确性,进而进一步保证了目标数据表的数据可以准确地恢复至预定指令执行之前的状态。
具体的应用中,本申请的一种实施例中,第二确定模块用于:在所述预定指令为插入指令(insert指令)或者删除指令(delete指令)的情况下,确定所述目标数值为所述预定指令中的对应数值。对于插入指令来说,其通常为插入一条完整的指令,插入指令中包括具体插入的数值,而恢复指令应该是将插入的数据删除,即对应删除插入的数值,所以,目标数值为对应插入指令中的对应数值。对于删除指令来说,其通常为删除一条完整的数据,删除指令中包括具体删除的数值,而恢复指令应该是将删除的数据再重新插入,即对应插入删除的数值,所以,目标数值为对应删除指令中的对应数值。
实际的应用过程中,预定指令不仅可以为插入指令或者删除指令,其还可以为更新指令,对于更新指令来说,其一般来说更新一个数值,所以其实现过程较为复杂。为了更准确且高效地恢复更新指令对应的数据,本申请的一种实施例中,第一确定模块用于:在所述预定指令为更新指令的情况下,根据所述表结构,确定对应的主键字段以及所有的非主键字段;确定所述主键字段以及所有的所述非主键字段为所述目标字段。
当然,本申请中对于预定指令为更新指令这一情况来说,确定目标数值的过程中,并不限于将目标数据表的表结构的主键字段以及非主键字段均作为目标字段,还可以是将更新指令中对应的更新数值对应的字段作为目标字段,只是这一方式相对上段的方式来说生成恢复指令以及根据恢复指令恢复数据的过程较为繁杂。
本申请的另一种实施例中,第二确定模块还用于:确定所述非主键字段对应的目标数值为所述目标数据表中的记录数值;确定所述主键字段对应的第一目标数值,所述第一目标数值为所述目标数据表中的记录数值。生成模块用于:根据所述主键字段和所述第一目标数值生成第一目标字符串;根据所述非主键字段和对应的所述目标数值生成第二目标字符串。对于更新指令的恢复过程来说,其实际是将数据恢复至执行更新指令之前的状态,因此,将更新指令执行前的目标数据表中各字段对应的记录值作为目标数值,这样后续更加这些目标数值,可以更高效地将目标数据表恢复至更新指令执行前的状态,即将目标数据表中的数据恢复为之前的记录值。
本申请的另一种实施例中,第二确定模块还用于:对于在所述更新指令中修改的字段包括所述主键字段的情况下,确定所述主键字段对应的第二目标数值,其中,所述第二目标数值为所述更新指令中的对应数值,根据所述目标数值和所述目标字段生成所述目标字符串,还包括:根据所述目标字段和所述第二目标数值生成第三目标字符串。
为了更加高效准确地恢复数据,本申请的一种实施例中,所述装置还包括:第一存储单元,用于将所述预定指令的名称、所述目标数据表的名称以及所述目标字符串存储至第一辅助数据表。后续可以根据该辅助数据表进行查询来获取对应的信息即可。
本申请的又一种实施例中,所述装置还包括:第二生成单元,用于在对所述目标数据库执行所述预定指令时,生成所述预定指令对应的指令编号;第二存储单元,用于将所述指令编号存储至第二辅助数据表。该装置中,对指令进行编号,生成对应的指令编号,后续恢复数据时可以更加高效地根据指令编号查找到对应的预定指令,从而进一步提升数据的恢复效率。
为了更加高效准确地恢复数据,本申请的一种实施例中,第一生成单元包括:第二获取模块,用于根据所述恢复请求,从所述第二辅助数据表中获取对应的所述指令编号;提取模块,用于根据所述指令编号,从所述第一辅助数据表中提取对应的所述预定指令、所述目标数据表的名称以及所述目标字符串;生成模块,用于根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述恢复指令。
本申请的再一种实施例中,上述预定指令和所述恢复指令均为SQL指令,即上述预定指令和所述恢复指令均SQL语句。当然,实际的应用过程中,恢复指令和预定指令还可以为现有技术中的其他可行的语句。
实施例
该实施例中,针对不同的数据库SQL指令,分别进行不同的过程。
当执行insert指令时:解析SQL指令获取表名(目标数据表的表名称,后续该词语为同一含义,不再说明),通过表名获取该表的表结构,将目标数据表中的字段与SQL指令中的值一一对应,以“字段=值”的key、value形式生成记录值字符串,自动生成版本号(指令编号,下同,不再说明)并存储至第二辅助数据表,并分别将“insert”、表名、记录值字符串存入数据库中第一辅助数据表的“操作”、“表名”、“记录值”3个字段。进行恢复时,通过版本号,查询操作记录,自动生成恢复SQL:delete from表名where记录值;
当执行delete指令时:解析SQL指令获取表名,通过表名、delete指令中的where条件,获取该表的表结构以及对应的数值,将字段与SQL指令中的数值一一对应,以“字段=值”的key、value形式生成记录值字符串,自动生成版本号,并分别将“delete”、表名、记录值字符串存入数据库中的“操作”、“表名”、“记录值”3个字段。进行恢复时,通过版本号,查询操作记录,自动生成恢复SQL:insert into表名values(记录值);
当执行update(更新)指令时:解析SQL指令获取表名,通过表名获取该表的主键字段,判断update中修改的字段是否包含主键字段:
1.若不包含主键字段,通过表名、update指令中的where条件,获取主键字段和目标数据表更新前的值以及update指令修改的所有记录值,将主键字段及其值、会被修改的所有记录值,都以“字段=值”的key、value形式生成字符串,自动生成版本号,分别将“update”、表名、主键值字符串(第一字符串)以及记录值字符串(第二字符串)存入数据库中的“操作”、“表名”、“原主键值”、“记录值”4个字段。进行恢复时,通过版本号,查询操作记录,自动生成恢复SQL:update表名set记录值where原主键值;
2.若包含主键字段,通过表名获取,update指令中的where条件,获取主键字段和原值(目标数据表中更新前的值)、update指令中修改的主键字段和新值以及update指令修改的所有记录值,并以“字段=值”的key、value形式生成字符串,自动生成版本号,分别将“update”、表名、原主键值字符串(第一字符串)、新主键值字符串(第三字符串)以及记录值字符串(第二字符串)存入数据库中的“操作”、“表名”、“原主键值”、“新主键值”、“记录值”5个字段。进行恢复时,通过版本号,查询操作记录,自动生成恢复SQL:update表名set记录值where新主键值。
对于delete指令和update指令,在指令解析后,都会根据解析后的where条件查询数据库获取将被影响的记录数,若记录数为0,则说明没有需要操作的数据,SQL指令不会影响数据库,则不涉及恢复操作,也就不会执行后面的所有操作。
所述数据的恢复装置包括处理器和存储器,上述解析单元、第一生成单元以及执行单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决数据库业务的数据恢复需要人工编程的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据的恢复方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据的恢复方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S101,在目标数据库执行预定指令时,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,所述目标字符串包括一一对应的目标字段和目标数值,所述目标字段至少包括所述预定指令中的对应字段;
步骤S102,在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令;
步骤S103,执行所述恢复指令,以使得所述目标数据库中的数据恢复。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S101,在目标数据库执行预定指令时,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,所述目标字符串包括一一对应的目标字段和目标数值,所述目标字段至少包括所述预定指令中的对应字段;
步骤S102,在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令;
步骤S103,执行所述恢复指令,以使得所述目标数据库中的数据恢复。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的恢复方法中,在目标数据库执行预定指令时,对预定指令进行解析,得到预定指令对应执行的目标数据表的名称以及目标字符串;之后,在接收到恢复请求的情况下,根据预定指令、目标数据表的名称以及目标字符串,生成恢复指令;最后,执行恢复指令,将目标数据表的数据恢复至预定指令执行之前的状态。该方法无需人工编程,即可实现目标数据表中的数据的自动恢复,降低了对编程人员的要求,提高了数据恢复的效率。
2)、本申请的恢复装置中,解析单元在目标数据库执行预定指令时,对预定指令进行解析,得到预定指令对应执行的目标数据表的名称以及目标字符串;第一生成单元在接收到恢复请求的情况下,根据预定指令、目标数据表的名称以及目标字符串,生成恢复指令;执行单元执行恢复指令,将目标数据表的数据恢复至预定指令执行之前的状态。该装置无需人工编程,即可实现目标数据表中的数据的自动恢复,降低了对编程人员的要求,提高了数据恢复的效率。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种数据的恢复方法,其特征在于,包括:
在目标数据库执行预定指令时,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,所述目标字符串包括一一对应的目标字段和目标数值,所述目标字段至少包括所述预定指令中的对应字段;
在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令;
执行所述恢复指令,以使得所述目标数据库中的数据恢复;
对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,包括:
解析所述预定指令,得到所述目标数据表的名称;
根据所述目标数据表的名称,获取所述目标数据表的表结构;
根据所述表结构和所述预定指令,至少确定与所述预定指令中的数值对应的字段为所述目标字段;
根据所述预定指令的类型,确定所述目标字段对应的所述目标数值;
根据所述目标数值和所述目标字段生成所述目标字符串。
2.根据权利要求1所述的方法,其特征在于,根据所述预定指令的类型,确定所述目标数值,包括:
在所述预定指令为插入指令或者删除指令的情况下,确定所述目标数值为所述预定指令中的对应数值。
3.根据权利要求1所述的方法,其特征在于,在所述预定指令为更新指令的情况下,根据所述表结构和所述预定指令,至少确定与所述预定指令中的数值对应的所述字段为所述目标字段,包括:
根据所述表结构,确定对应的主键字段以及所有的非主键字段;
确定所述主键字段以及所有的所述非主键字段为所述目标字段。
4.根据权利要求3所述的方法,其特征在于,在所述预定指令为更新指令的情况下,根据所述预定指令的类型,确定所述目标字段对应的所述目标数值,包括:
确定所述非主键字段对应的目标数值为所述目标数据表中的记录数值;
确定所述主键字段对应的第一目标数值,所述第一目标数值为所述目标数据表中的记录数值,
根据所述目标数值和所述目标字段生成所述目标字符串,包括:
根据所述主键字段和所述第一目标数值生成第一目标字符串;
根据所述非主键字段和对应的所述目标数值生成第二目标字符串。
5.根据权利要求4所述的方法,其特征在于,在所述更新指令中修改的字段包括所述主键字段的情况下,
根据所述预定指令的类型,确定所述目标字段对应的所述目标数值,还包括:
确定所述主键字段对应的第二目标数值,其中,所述第二目标数值为所述更新指令中的对应数值,
根据所述目标数值和所述目标字段生成所述目标字符串,还包括:
根据所述目标字段和所述第二目标数值生成第三目标字符串。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
将所述预定指令的名称、所述目标数据表的名称以及所述目标字符串存储至第一辅助数据表。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在对所述目标数据库执行所述预定指令时,生成所述预定指令对应的指令编号;
将所述指令编号存储至第二辅助数据表。
8.根据权利要求7所述的方法,其特征在于,在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令,包括:
根据所述恢复请求,从所述第二辅助数据表中获取对应的所述指令编号;
根据所述指令编号,从所述第一辅助数据表中提取对应的所述预定指令、所述目标数据表的名称以及所述目标字符串;
根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述恢复指令。
9.根据权利要求1至5中任一项所述的方法,其特征在于,所述预定指令和所述恢复指令均为SQL指令。
10.一种数据的恢复装置,其特征在于,包括:
解析单元,用于在目标数据库执行预定指令时,对所述预定指令进行解析,得到目标数据表的名称以及目标字符串,所述目标字符串包括一一对应的目标字段和目标数值,所述目标字段至少包括所述预定指令中的对应字段;
第一生成单元,用于在接收到将所述目标数据库恢复至所述预定指令之前的恢复请求的情况下,根据所述预定指令、所述目标数据表的名称以及所述目标字符串,生成所述预定指令对应的恢复指令;
执行单元,用于执行所述恢复指令,以使得所述目标数据库中的数据恢复;
所述解析单元包括:解析模块、第一获取模块、第一确定模块、第二确定模块、生成模块,其中,所述解析模块,用于解析所述预定指令,得到所述目标数据表的名称;
所述第一获取模块,用于根据所述目标数据表的名称,获取所述目标数据表的表结构;所述第一确定模块,用于根据所述表结构和所述预定指令,至少确定与所述预定指令中的数值对应的字段为所述目标字段;所述第二确定模块,用于根据所述预定指令的类型,确定所述目标字段对应的所述目标数值;所述生成模块,用于根据所述目标数值和所述目标字段生成所述目标字符串。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1至9中任意一项所述的方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至9中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110559466.5A CN113297220B (zh) | 2021-05-21 | 2021-05-21 | 数据的恢复方法、装置、计算机可读存储介质以及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110559466.5A CN113297220B (zh) | 2021-05-21 | 2021-05-21 | 数据的恢复方法、装置、计算机可读存储介质以及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297220A CN113297220A (zh) | 2021-08-24 |
CN113297220B true CN113297220B (zh) | 2024-10-22 |
Family
ID=77323734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110559466.5A Active CN113297220B (zh) | 2021-05-21 | 2021-05-21 | 数据的恢复方法、装置、计算机可读存储介质以及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297220B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795447A (zh) * | 2019-10-29 | 2020-02-14 | 中国工商银行股份有限公司 | 数据处理方法、数据处理系统、电子设备和介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281561B (zh) * | 2013-07-08 | 2017-11-24 | 华为技术有限公司 | 一种数据恢复的方法及电子设备 |
WO2017165914A1 (en) * | 2016-03-31 | 2017-10-05 | Wisetech Global Limited | "methods and systems for database optimisation" |
CN109522078A (zh) * | 2018-11-15 | 2019-03-26 | 用友网络科技股份有限公司 | 操作撤销方法、计算机设备和计算机可读存储介质 |
CN110147413B (zh) * | 2019-04-26 | 2023-06-02 | 平安科技(深圳)有限公司 | 数据存储方法、数据查询方法、装置、设备及存储介质 |
CN110781036A (zh) * | 2019-10-31 | 2020-02-11 | 北京东软望海科技有限公司 | 数据恢复方法、装置、计算机设备及存储介质 |
CN111459720B (zh) * | 2020-04-02 | 2023-07-07 | 上海新炬网络技术有限公司 | 一种基于事务日志的Mysql数据恢复方法 |
-
2021
- 2021-05-21 CN CN202110559466.5A patent/CN113297220B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795447A (zh) * | 2019-10-29 | 2020-02-14 | 中国工商银行股份有限公司 | 数据处理方法、数据处理系统、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113297220A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102804147B (zh) | 执行abap源代码的代码检查的代码检查执行系统 | |
CN102934114B (zh) | 用于文件系统的检查点 | |
US7774772B2 (en) | Method and apparatus to perform an application software migration | |
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
CN110489310B (zh) | 一种记录用户操作的方法、装置、存储介质及计算机设备 | |
US11347619B2 (en) | Log record analysis based on log record templates | |
CN112732300A (zh) | 一种数据包更新方法、装置、电子设备及可读存储介质 | |
KR101737578B1 (ko) | 자동 생성된 sql 구문에 대한 자동 튜닝 방법 및 장치 | |
CN114356964A (zh) | 数据血缘构建方法、装置、存储介质及电子设备 | |
CN112181951B (zh) | 一种异构数据库数据迁移方法、装置及设备 | |
Zhang et al. | Automated Root Causing of Cloud Incidents using In-Context Learning with GPT-4 | |
CN112612775A (zh) | 一种数据存储方法、装置、计算机设备及存储介质 | |
CN108399068B (zh) | 函数程序持久化的方法、电子设备及存储介质 | |
CN113297220B (zh) | 数据的恢复方法、装置、计算机可读存储介质以及处理器 | |
CN109857716B (zh) | 系统交互日志记录方法、装置及存储介质、服务器 | |
CN117453659A (zh) | 一种异构数据库sql迁移转换方法及系统 | |
CN114169309A (zh) | 修改行为数据表的方法、装置、计算机设备及存储介质 | |
CN113901025A (zh) | 数据库管理方法、装置、设备和存储介质 | |
CN110221952B (zh) | 业务数据的处理方法及装置、业务数据处理系统 | |
CN113961238A (zh) | 对象转换方法、装置及电子设备和存储介质 | |
CN112035367B (zh) | 一种大数据平台工作流正确性的校验方法及系统 | |
CN116700763B (zh) | Clickhouse数据库的版本升级方法及装置 | |
KR101970717B1 (ko) | 바이트 코드 기반 자바 메서드 버전 관리 방법, 이를 이용한 자바 소프트웨어 개발 시스템 및 방법 | |
CN118467556A (zh) | 数据库升级与回滚方法及其系统 | |
CN118152372A (zh) | 客户关系管理系统的数据库维护方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |