CN115543685A - 一种数据库回滚方法、装置、电子设备及存储介质 - Google Patents

一种数据库回滚方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115543685A
CN115543685A CN202110742097.3A CN202110742097A CN115543685A CN 115543685 A CN115543685 A CN 115543685A CN 202110742097 A CN202110742097 A CN 202110742097A CN 115543685 A CN115543685 A CN 115543685A
Authority
CN
China
Prior art keywords
record
rollback
database
data
matched
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.)
Pending
Application number
CN202110742097.3A
Other languages
English (en)
Inventor
张泽龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing New Oxygen World Wide Technology Consulting Co ltd
Original Assignee
Soyoung Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Soyoung Technology Beijing Co Ltd filed Critical Soyoung Technology Beijing Co Ltd
Priority to CN202110742097.3A priority Critical patent/CN115543685A/zh
Publication of CN115543685A publication Critical patent/CN115543685A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

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)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库回滚方法、装置、电子设备及存储介质,方法包括:在待回滚的数据列表中搜索与检索关键词匹配的操作记录;所述操作记录为在对数据库进行操作过程中生成的数据;根据匹配到的操作记录对所述数据库进行与操作记录中操作类型对应的回滚操作。在对数据库操作阶段,就会实时记录数据库操作内容,并生成回滚时用的操作记录,避免人工操作发生失误且无法追溯错误操作造成的数据损失问题。在需要回滚时,通过搜索与检索关键词匹配的回滚用的操作记录,并根据不同操作类型的操作记录进行不同的回滚操作,以满足任意精细化的回滚需求,并且由于任意操作数据库过程都实时记录,因此在进行回滚操作时不会出现数据损失的问题。

Description

一种数据库回滚方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种数据库回滚方法、装置、电子设备及存储介质。
背景技术
数据库时软件开发过程中必不可少的依赖中间件,程序可以利用数据库的存储结构将需要保存的数据存储到数据库中,例如用户的手机号、发表的文章、关注的粉丝数据等。
在一些场景下,需要对数据库中的数据进行如更新、删除、插入等的操作,为了满足操作过程中出现异常情况产生脏数据或误操作需要恢复的需求,在进行这些操作时需要预备好数据库回滚方案。
在相关技术中,在发生误操作时,例如发生了误删除,或者不小心批量更新了全表的某个字段时,通常采用的数据库的全量备份结合增量备份将数据库恢复到某一个时间点。然而,这会损失掉误操作与实际恢复之间产生的数据,而且如果这个中间时间拉大的话,因为要处理中间新增的数据,那么恢复任务也会变得很复杂。
发明内容
本发明的目的是针对上述现有技术的不足提出的一种数据库回滚方法、装置、电子设备及存储介质,该目的是通过以下技术方案实现的。
本发明的第一方面提出了一种数据库回滚方法,所述方法包括:
在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录;所述操作记录为在对数据库进行操作过程中生成的数据;
根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作。
在本申请的一些实施例中,所述操作记录还包含记录时间、检索标识;
所述在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录,包括:若所述检索关键词为时间节点范围,则在所述数据列表中,搜索记录时间处于所述时间节点范围内的操作记录作为与所述检索关键词匹配的操作记录;若所述检索关键词为非时间节点范围,则在所述数据列表中,搜索与所述检索关键词匹配的检索标识,并将匹配到的检索标识所属的操作记录作为与所述检索关键词匹配的操作记录。
在本申请的一些实施例中,所述操作记录还包含回滚级别、操作主键名、以及操作主键值;
所述根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作,包括:若所述操作记录中的操作类型为插入,则根据所述操作记录中的回滚级别判定是否需要进行回滚操作;若需要,则根据所述操作记录中的操作主键名和操作主键值,在所述数据库中查找相应的数据记录;若查找到数据记录,则删除所述数据记录。
在本申请的一些实施例中,所述操作记录还包含操作字段、所述操作字段的操作前字段值和操作后字段值、以及操作前快照;
所述根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作,包括:若所述操作记录中的操作类型为更新,则根据所述操作记录中的操作主键名和操作主键值,在所述数据库中查找相应的数据记录;若查找到,则将所述数据记录包含的操作字段的当前字段值与操作后字段值进行比较,并基于比较结果对所述数据库进行与所述操作记录中操作类型对应的回滚操作;若未查找到,则在根据所述操作记录中的回滚级别判定需要进行回滚操作时,将所述操作记录中的操作前快照插入所述数据库中。
在本申请的一些实施例中,所述基于比较结果对所述数据库进行与所述操作记录中操作类型对应的回滚操作,包括:若当前字段值与操作后字段值一致,则将查找到的数据记录中的当前字段值更新为操作前字段值;若当前字段值与操作后字段值不一致,则在根据所述操作记录中的回滚级别判定需要进行回滚操作时,将查找到的数据记录中的当前字段值更新为操作前字段值。
在本申请的一些实施例中,所述根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作,包括:若所述操作记录中的操作类型为删除,则根据所述操作记录中的回滚级别判定是否需要进行回滚操作;若需要,则将所述操作记录中的操作前快照插入所述数据库中。
在本申请的一些实施例中,在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录之后,所述方法还包括:在所述数据列表中,为匹配到的每条操作记录设置回滚标记。
在本申请的一些实施例中,所述方法还包括操作记录的生成过程:接收外部输入的数据库操作参数;所述数据库操作参数包括数据库名、数据库表名、操作类型、操作主键值、回滚级别、以及检索标识;根据所述数据库操作参数对相应的数据库进行操作,并生成包含所述数据库操作参数、操作主键值对应的操作主键名、记录时间、以及操作前快照的操作记录;其中,若所述数据库操作参数中的操作类型为插入或更新,则所述操作参数还包括操作字段和操作后字段值,且所述操作记录还包括所述操作字段的操作前字段值。
本发明的第二方面提出了一种数据库回滚装置,所述装置包括:
记录搜索模块,用于在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录;所述操作记录为在对数据库进行操作过程中生成的数据;
数据回滚模块,用于根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作。
本发明的第三方面提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述方法的步骤。
本发明的第四方面提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述第一方面所述方法的步骤。
基于上述第一方面和第二方面所述的数据库回滚方法及装置,本发明至少具有如下有益效果或优点:
本发明在对数据库进行操作阶段,就会实时记录下数据库操作内容,并生成回滚时使用的操作记录,避免人工操作发生失误且无法追溯错误操作造成的数据损失问题。
在需要回滚操作时,通过接收外部输入的检索关键词,搜索与检索关键词匹配的回滚用的操作记录,并根据不同操作类型的操作记录进行不同的回滚操作,以满足任意精细化的回滚需求,并且由于任意操作数据库过程都实时记录,因此在进行回滚操作时不会出现数据损失的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明根据一示例性实施例示出的一种数据库回滚方法的实施例流程图;
图2为本发明根据图1所示实施例示出的操作类型为插入的回滚流程示意图;
图3为本发明根据图1所示实施例示出的操作类型为更新的回滚流程示意图;
图4为本发明根据图1所示实施例示出的操作类型为删除的回滚流程示意图;
图5为本发明根据一示例性实施例示出的数据库回滚方法的具体流程示意图;
图6为本发明根据一示例性实施例示出的一种数据库回滚装置的结构示意图;
图7为本发明根据一示例性实施例示出的一种电子设备的硬件结构示意图图;
图8为本发明根据一示例性实施例示出的一种存储介质的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为解决传统回滚方案只能恢复到某一时间节点,回滚不够精细,且容易出现数据丢失的问题,本发明提出一种改进的数据库回滚方法,即在接收到检索关键词时,通过在待回滚的数据列表中,搜索与检索关键词匹配的操作记录,所述操作记录为在对数据库进行操作过程中生成的数据,然后根据匹配到的操作记录,对数据库进行与操作记录中操作类型对应的回滚操作。
基于上述描述可达到的技术效果有:
本发明在对数据库进行操作阶段,就会实时记录下数据库操作内容,并生成回滚时使用的操作记录,避免人工操作发生失误且无法追溯错误操作造成的数据损失问题。
在需要回滚操作时,通过接收外部输入的检索关键词,搜索与检索关键词匹配的回滚用的操作记录,并根据不同操作类型的操作记录进行不同的回滚操作,以满足任意精细化的回滚需求,并且由于任意操作数据库过程都实时记录,因此在进行回滚操作时不会出现数据损失的问题。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
实施例一:
图1为本发明根据一示例性实施例示出的一种数据库回滚方法的实施例流程图,所述数据库回滚方法可以应用于电子设备上,该电子设备可以包括终端设备、移动终端、PC机、服务器等任意能够连网的设备。如图1所示,所述数据库回滚方法包括如下步骤:
步骤101:在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录,所述操作记录为在对数据库进行操作过程中生成的数据。
在执行步骤101之前,需要对数据库的任意操作过程进行实时记录,以生成操作记录添加到数据列表中,便于回滚时使用,避免了人工操作发生失误且无法追溯错误操作造成的数据损失的问题。
可选的,针对操作记录的生成过程,接收外部输入的数据库操作参数,进而根据数据库操作参数对相应的数据库进行操作,并生成包含数据库操作参数、操作主键值对应的操作主键名、记录时间、以及操作前快照的操作记录。
其中,操作前快照指的是数据库表中操作主键值对应的整条数据记录,并且该条数据记录是操作前的数据。
在具体实施时,为了最大程度减少需要用户输入的参数数量,输入的数据库操作参数可以包括数据库名、数据库表名、操作类型、操作主键值、回滚级别、以及回滚时用于搜索匹配的检索标识,这些参数均为实现数据库操作和回滚操作的必要输入参数。
其中,用户输入的回滚级别用于表征当前操作的强制回滚程度,级别越高,说明回滚可能性越大。
进一步地,由于插入操作和更新操作,均需要指出要操作的字段和字段值,因此当数据库操作参数中的操作类型为插入或更新时,数据库操作参数还包括操作字段和操作后字段值,相应的,操作记录还包括该操作字段的操作前字段值。
由此可见,生成的操作记录包括:数据库名、数据库表名、操作类型、操作主键值、回滚级别、检索标识、操作主键值对应的操作主键名、记录时间、以及操作前快照,在操作类型为更新或插入时,操作记录还包括:操作字段、操作字段的操作后字段值和操作前字段值。
需要说明的是,数据库操作参数中的检索标识由用户根据实际使用需求定义。在一个例子中,检索标识可以包括部门、模块、关键字三部分的组合数据。
例如,检索标识为:chuangxin:mz:comment:191719,其中“chuangxin”代表创新部门,“mz”代表面诊数据,“comment”代表评价模块,“191719”代表用户id,该检索标识组合起来的意思就是操作的数据是用户191719涉及到的创新部门的面诊相关评价模块数据。
在本实施例中,用户可以按时间节点进行回滚,当然还可以按检索标识进行回滚,因此用户输入的检索关键词有可能是时间节点范围,也有可能是检索标识的完整数据或者部分数据。
基于此,针对在待回滚的数据列表中搜索操作记录的过程可以包括:若检索关键词为时间节点范围,则在数据列表中,搜索记录时间处于所述时间节点范围内的操作记录作为与检索关键词匹配的操作记录;若检索关键词为非时间节点范围,即检索关键词为检索标识的至少部分数据,则在数据列表中,搜索与检索关键词匹配的检索标识,并将匹配到的检索标识所属的操作记录作为与检索关键词匹配的操作记录。
其中,若检索关键词是检索标识的部分数据,则需要在数据列表中进行模糊搜索,也即会搜索到不止一条匹配的操作记录,若检索关键词是检索标识完整数据,则可以在数据列表中进行精确搜索,也即只能搜索到一条匹配的操作记录。
可选的,由于检索标识是由用户按一定规则定义的由多个部分组成的数据,在检索关键词是检索标识的部分数据情况下,对于缺少的部分可以使用通配符(例如“%”)代替。
以上述提供的检索标识格式为例,若检索关键词为:chuangxin%,代表需要回滚所有创新部门数据;若检索关键词为:%mz:comment%,代表需要回滚面诊的评价模块数据;若检索关键词为:%191719,代表需要回滚用户191719的全部数据;若检索关键词为:%mz:%191719,代表需要回滚用户191719的所有面诊数据,不限于评价模块数据。
步骤102:根据匹配到的操作记录,对数据库进行与该操作记录中操作类型对应的回滚操作。
其中,如果操作记录中的操作类型为插入,表示在生成该操作记录时,对数据库执行的是插入操作,则在回滚时需要将当时插入的数据删除,即对应的回滚操作是删除。
如果操作记录中的操作类型为更新,表示在生成该操作记录时,对数据库执行的是更新操作,则在回滚时需要将当时更新的数据恢复到操作前数据,即对应的回滚操作是更新。
如果操作记录中的操作类型为删除,表示在生成该操作记录时,对数据库执行的是删除操作,则在回滚时需要将当时删除的数据记录再原路插入到数据库中,即对应的回滚操作是插入。
需要说明的是,针对上述三种不同的精细化回滚操作的具体实现,可以参见下述实施例的相关描述,本发明在此暂不详述。
需要进一步说明的是,可以在数据列表中,为上述匹配到的每条操作记录设置回滚标记,以防止进行二次回滚,同时这些带有回滚标记的操作记录也可以用于后续追溯使用。
至此,完成上述图1所示的回滚流程,在对数据库进行操作阶段,本发明会实时记录下数据库操作内容,并生成回滚时使用的操作记录,避免人工操作发生失误且无法追溯错误操作造成的数据损失问题。
在需要回滚操作时,通过接收外部输入的检索关键词,搜索与检索关键词匹配的回滚用的操作记录,并根据不同操作类型的操作记录进行不同的回滚操作,以满足任意精细化的回滚需求,并且由于任意操作数据库过程都实时记录,因此在进行回滚操作时不会出现数据损失的问题。
实施例二:
图2为本发明根据图1所示实施例示出的操作类型为插入的回滚流程示意图,基于上述图1所示实施例的基础上,操作类型为插入的回滚流程包括如下步骤:
步骤201:根据操作记录中的回滚级别判定是否需要进行回滚操作。
在一可选的具体实施方式中,可以通过将操作记录中的回滚级别与预设级别进行比较,如果回滚级别大于预设级别,表示对于操作类型为插入的操作记录需要执行回滚操作,则确定需要进行回滚操作;否则,确定不需要进行回滚操作,结束当前操作记录的回滚流程。
在一个例子中,可以预先设置两种回滚级别:0、1。其中,“0”表征不进行回滚操作,“1”表征进行回滚操作。也就是说,在用户输入的回滚级别为0时,表示有些数据库操作,用户不希望执行回滚;在用户输入的回滚级别为1时,表示用户希望执行回滚。
基于此,预设级别可以为0。
步骤202:若需要,则根据操作记录中的操作主键名和操作主键值,在数据库中查找相应的数据记录。
在具体实施时,可以根据操作记录中的数据库名、数据库表名、操作主键名、以及操作主键值生成数据库的查询命令,并执行该查询命令,以查找相应的数据记录。
步骤203:若查找到数据记录,则删除该数据记录。
其中,由于查找到的数据记录是当时插入的数据,因此需要将该数据记录删除,以恢复至插入前的状态。
至此,完成上述图2所示的回滚流程,对操作类型为插入的情况,通过根据操作记录中的回滚级别判定是否需要执行回滚操作,由于回滚级别属于外部输入参数,因此可以满足用户当时输入的回滚需求。并且在判定需要执行回滚操作情况下,通过将当时插入的数据记录删除,以将数据库恢复至插入前的状态。
实施例三:
图3为本发明根据图1所示实施例示出的操作类型为更新的回滚流程示意图,基于上述图1所示实施例的基础上,操作类型为更新的回滚流程包括如下步骤:
步骤301:根据操作记录中的操作主键名和操作主键值,在数据库中查找相应的数据记录,若未查找到,则执行步骤302,若查找到,则执行步骤303。
在具体实施时,可以根据操作记录中的数据库名、数据库表名、操作主键名、以及操作主键值生成数据库的查询命令,并执行该查询命令,以查找相应的数据记录,若未查找到,表在执行更新操作之后,操作主键值对应的数据记录被删除,相应的数据库表中不存在该数据记录了。
步骤302:在根据操作记录中的回滚级别判定需要进行回滚操作时,将操作记录中的操作前快照插入数据库中。
在一可选的具体实施方式中,可以通过将操作记录中的回滚级别与预设级别进行比较,如果回滚级别大于预设级别,表示对于操作类型为更新的操作记录需要执行回滚操作,则将操作记录中的操作前快照插入数据库中,以将执行更新操作之后的数据记录恢复至更新操作之前的状态;否则,确定不需要进行回滚操作,结束当前操作记录的回滚流程。
在一个例子中,可以预先设置两种回滚级别:0、1。其中,“0”表征不进行回滚操作,“1”表征进行回滚操作。也就是说,在用户输入的回滚级别为0时,表示有些数据库操作,用户不希望执行回滚;在用户输入的回滚级别为1时,表示用户希望执行回滚。
基于此,预设级别可以为0。
步骤303:将查找到的数据记录包含的操作字段的当前字段值与操作后字段值进行比较,得到比较结果。
其中,若当前字段值与操作后字段值比较一致,表示在执行更新操作之后,数据记录中操作字段的字段值一直未发生变化;若当前字段值与操作后字段值比较不一致,表示在执行更新操作之后,数据记录中操作字段的字段值发生变化了。
步骤304:基于该比较结果,对数据库进行与操作记录中操作类型对应的回滚操作。
在一可选的实施例中,若比较一致,即执行更新操作后数据未发生变化,则将查找到的数据记录中的当前字段值更新为操作前字段值;若比较不一致,即执行更新操作后数据发生变化,则在根据操作记录中的回滚级别判定需要进行回滚操作时,将查找到的数据记录中的当前字段值更新为操作前字段值。
其中,针对根据操作记录中的回滚级别判定需要进行回滚操作的过程,可以参见上述步骤302中的相关描述,在此不再赘述。
至此,完成上述图3所示的回滚流程,对操作类型为更新的情况,通过根据操作记录中的操作主键名和操作主键值,在数据库中查找相应的数据记录,然后针对数据库中存在数据记录与不存在数据记录两种情况,分别进行不同的回滚操作,以将数据库恢复至更新前的状态,满足精细化的回滚需求。
实施例四:
图4为本发明根据图1所示实施例示出的操作类型为删除的回滚流程示意图,基于上述图1至图3所示实施例的基础上,操作类型为删除的回滚流程包括如下步骤:
步骤401:根据操作记录中的回滚级别判定是否需要进行回滚操作。
步骤402:若需要,则将操作记录中的操作前快照插入数据库中。
在一可选的具体实施方式中,可以通过将操作记录中的回滚级别与预设级别进行比较,如果回滚级别大于预设级别,表示对于操作类型为删除的操作记录需要执行回滚操作,则将操作记录中的操作前快照插入数据库中,以恢复至删除操作之前的状态;否则,确定不需要进行回滚操作,结束当前操作记录的回滚流程。
在一个例子中,可以预先设置两种回滚级别:0、1。其中,“0”表征不进行回滚操作,“1”表征进行回滚操作。也就是说,在用户输入的回滚级别为0时,表示有些数据库操作,用户不希望执行回滚;在用户输入的回滚级别为1时,表示用户希望执行回滚。
基于此,预设级别可以为0。
至此,完成上述图4所示的回滚流程,对操作类型为删除的情况,通过根据操作记录中的回滚级别判定是否需要执行回滚操作,由于回滚级别属于外部输入参数,因此可以满足用户当时输入的回滚需求。并且在判定需要执行回滚操作情况下,通过将当时删除的数据记录原路插入数据库,以将数据库恢复至插入前的状态。
实施例五:
图5为本发明根据一示例性实施例示出的数据库回滚方法的具体流程示意图,基于上述图1至图4所示实施例的基础上,数据库回滚的具体流程如下所示:
步骤501:接收外部输入的数据库操作参数,根据数据库操作参数对相应的数据库进行操作,并生成包含数据库操作参数的操作记录添加到数据列表中。
其中,操作记录包括:数据库名、数据库表名、操作类型、操作主键值、回滚级别、检索标识、操作主键值对应的操作主键名、记录时间、以及操作前快照,在操作类型为更新或插入时,操作记录还包括:操作字段、操作字段的操作后字段值和操作前字段值。
步骤502:在接收到外部输入的检索关键词时,在待回滚的数据列表中搜索与检索关键词匹配的操作记录。
步骤503:判断操作记录中的操作类型,若为插入,则执行步骤504至步骤505;若为更新,则执行步骤506至步骤512;若为删除,则执行步骤513至步骤514。
针对操作类型为插入的回滚流程如下所示:
步骤504:将操作记录中的回滚级别与预设级别进行比较。
步骤505:若回滚级别大于预设级别,则根据操作主键名和操作主键值在数据库中查找相应的数据记录并删除。
针对操作类型为更新的回滚流程如下所示:
步骤506:操作主键名和操作主键值在数据库中查找相应的数据记录,若未查找到,则执行步骤507至步骤508,若查找到,则执行步骤509至步骤512。
步骤507:将回滚级别与预设级别进行比较。
步骤508:若回滚级别大于预设级别,则将操作记录中的操作前快照插入数据库中。
步骤509:将查找到的数据记录中操作字段的当前字段值与操作后字段值进行比较,若比较一致,则执行步骤510,若比较不一致,则执行步骤511至步骤512。
步骤510:将数据记录中的当前字段值更新为操作前字段值。
步骤511:将回滚级别与预设级别进行比较。
步骤512:若回滚级别大于预设级别,则将操作记录中的操作前快照插入数据库中。
针对操作类型为删除的回滚流程如下所示:
步骤513:将回滚级别与预设级别进行比较。
步骤514:若回滚级别大于预设级别,则将操作记录中的操作前快照插入数据库中。
针对上述步骤501至步骤514过程的具体实现,可以参见上述实施例中的相关描述,本发明在此不再一一详述。
与前述数据库回滚方法的实施例相对应,本发明还提供了数据库回滚装置的实施例。
图6为本发明根据一示例性实施例示出的一种数据库回滚装置的实施例流程图,该装置用于执行上述任一实施例提供的数据库回滚方法,如图6所示,该数据库回滚装置包括:
记录搜索模块610,用于在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录;所述操作记录为在对数据库进行操作过程中生成的数据;
数据回滚模块620,用于根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施方式还提供一种与前述实施方式所提供的数据库回滚方法对应的电子设备,以执行上述数据库回滚方法。
图7为本发明根据一示例性实施例示出的一种电子设备的硬件结构图,该电子设备包括:通信接口601、处理器602、存储器603和总线604;其中,通信接口601、处理器602和存储器603通过总线604完成相互间的通信。处理器602通过读取并执行存储器603中与数据库回滚方法的控制逻辑对应的机器可执行指令,可执行上文描述的数据库回滚方法,该方法的具体内容参见上述实施例,此处不再累述。
本发明中提到的存储器603可以是任何电子、磁性、光学或其它物理存储装置,可以包含存储信息,如可执行指令、数据等等。具体地,存储器603可以是RAM(Random AccessMemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。通过至少一个通信接口601(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线604可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器603用于存储程序,所述处理器602在接收到执行指令后,执行所述程序。
处理器602可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器602可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
本申请实施例提供的电子设备与本申请实施例提供的数据库回滚方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的数据库回滚方法对应的计算机可读存储介质,请参考图8所示,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的数据库回滚方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的数据库回滚方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (11)

1.一种数据库回滚方法,其特征在于,所述方法包括:
在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录;所述操作记录为在对数据库进行操作过程中生成的数据;
根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作。
2.根据权利要求1所述的方法,其特征在于,所述操作记录还包含记录时间、检索标识;
所述在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录,包括:
若所述检索关键词为时间节点范围,则在所述数据列表中,搜索记录时间处于所述时间节点范围内的操作记录作为与所述检索关键词匹配的操作记录;
若所述检索关键词为非时间节点范围,则在所述数据列表中,搜索与所述检索关键词匹配的检索标识,并将匹配到的检索标识所属的操作记录作为与所述检索关键词匹配的操作记录。
3.根据权利要求1所述的方法,其特征在于,所述操作记录还包含回滚级别、操作主键名、以及操作主键值;
所述根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作,包括:
若所述操作记录中的操作类型为插入,则根据所述操作记录中的回滚级别判定是否需要进行回滚操作;
若需要,则根据所述操作记录中的操作主键名和操作主键值,在所述数据库中查找相应的数据记录;
若查找到数据记录,则删除所述数据记录。
4.根据权利要求3所述的方法,其特征在于,所述操作记录还包含操作字段、所述操作字段的操作前字段值和操作后字段值、以及操作前快照;
所述根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作,包括:
若所述操作记录中的操作类型为更新,则根据所述操作记录中的操作主键名和操作主键值,在所述数据库中查找相应的数据记录;
若查找到,则将所述数据记录包含的操作字段的当前字段值与操作后字段值进行比较,并基于比较结果对所述数据库进行与所述操作记录中操作类型对应的回滚操作;
若未查找到,则在根据所述操作记录中的回滚级别判定需要进行回滚操作时,将所述操作记录中的操作前快照插入所述数据库中。
5.根据权利要求4所述的方法,其特征在于,所述基于比较结果对所述数据库进行与所述操作记录中操作类型对应的回滚操作,包括:
若当前字段值与操作后字段值一致,则将查找到的数据记录中的当前字段值更新为操作前字段值;
若当前字段值与操作后字段值不一致,则在根据所述操作记录中的回滚级别判定需要进行回滚操作时,将查找到的数据记录中的当前字段值更新为操作前字段值。
6.根据权利要求4所述的方法,其特征在于,所述根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作,包括:
若所述操作记录中的操作类型为删除,则根据所述操作记录中的回滚级别判定是否需要进行回滚操作;
若需要,则将所述操作记录中的操作前快照插入所述数据库中。
7.根据权利要求1所述的方法,其特征在于,在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录之后,所述方法还包括:
在所述数据列表中,为匹配到的每条操作记录设置回滚标记。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括操作记录的生成过程:
接收外部输入的数据库操作参数;所述数据库操作参数包括数据库名、数据库表名、操作类型、操作主键值、回滚级别、以及检索标识;
根据所述数据库操作参数对相应的数据库进行操作,并生成包含所述数据库操作参数、操作主键值对应的操作主键名、记录时间、以及操作前快照的操作记录;
其中,若所述数据库操作参数中的操作类型为插入或更新,则所述操作参数还包括操作字段和操作后字段值,且所述操作记录还包括所述操作字段的操作前字段值。
9.一种数据库回滚装置,其特征在于,所述装置包括:
记录搜索模块,用于在待回滚的数据列表中,搜索与外部输入的检索关键词匹配的操作记录;所述操作记录为在对数据库进行操作过程中生成的数据;
数据回滚模块,用于根据匹配到的操作记录,对所述数据库进行与所述操作记录中操作类型对应的回滚操作。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8任一项所述方法的步骤。
CN202110742097.3A 2021-06-30 2021-06-30 一种数据库回滚方法、装置、电子设备及存储介质 Pending CN115543685A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110742097.3A CN115543685A (zh) 2021-06-30 2021-06-30 一种数据库回滚方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110742097.3A CN115543685A (zh) 2021-06-30 2021-06-30 一种数据库回滚方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115543685A true CN115543685A (zh) 2022-12-30

Family

ID=84723045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110742097.3A Pending CN115543685A (zh) 2021-06-30 2021-06-30 一种数据库回滚方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115543685A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149712A (zh) * 2023-04-04 2023-05-23 湖南中青能科技有限公司 一种数据库版本更新兼容匹配方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149712A (zh) * 2023-04-04 2023-05-23 湖南中青能科技有限公司 一种数据库版本更新兼容匹配方法
CN116149712B (zh) * 2023-04-04 2023-06-27 湖南中青能科技有限公司 一种数据库版本更新兼容匹配方法

Similar Documents

Publication Publication Date Title
CN106897342B (zh) 一种数据校验方法和设备
CN109189759B (zh) Kv存储系统中的数据读取方法、数据查询方法、装置及设备
CN108073595B (zh) 一种在olap数据库实现数据更新和快照的方法及装置
CN111078719A (zh) 数据的恢复方法及装置、存储介质和处理器
CN115543685A (zh) 一种数据库回滚方法、装置、电子设备及存储介质
CN114840487A (zh) 分布式文件系统的元数据管理方法和装置
CN106897224B (zh) 一种软件测试范围的确定方法及装置
CN106909514B (zh) 一种快照盘地址的定位方法及装置
CN116467975B (zh) 数据处理方法、装置、电子设备及存储介质
CN110704573B (zh) 目录存储方法、装置、计算机设备及存储介质
CN112306995A (zh) 一种数据库操作的实现方法及装置
CN115858251B (zh) 一种基板控制单元控制方法、装置及电子设备和存储介质
CN110928945B (zh) 一种针对数据库的数据处理方法及装置,数据处理系统
CN108959548B (zh) 业务请求的处理方法及装置
CN107562533B (zh) 一种数据加载处理方法及装置
US7500145B2 (en) Anomaly-driven software switch to capture event responses and automate recovery
CN111752909B (zh) 一种多版本文件的操作方法、系统及装置
CN111209138A (zh) 数据存储系统的运维方法及装置
CN113708959A (zh) 一种规则库更新方法、装置及设备
JP2005234945A (ja) 同時実行制御方法及び装置
CN110597828A (zh) 一种数据库变更方法、装置、设备及存储介质
CN111881281A (zh) 一种日志处理方法、装置、设备、介质
CN111338574A (zh) 基于区块链的数据自修复方法、装置、介质及电子设备
CN111371818A (zh) 一种数据请求的验证方法、装置及设备
CN106844072B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240430

Address after: 100102 room 1201, 12 / F, building 8, yard 34, Chuangyuan Road, Chaoyang District, Beijing

Applicant after: Beijing new oxygen world wide Technology Consulting Co.,Ltd.

Country or region after: China

Address before: 100102 room 901, 9 / F, room 1001, 10 / F, building 8, yard 34, Chuangyuan Road, Chaoyang District, Beijing

Applicant before: Beijing New Oxygen Technology Co.,Ltd.

Country or region before: China