CN110389860A - 一种数据处理方法、装置、电子设备及存储介质 - Google Patents
一种数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110389860A CN110389860A CN201910538704.7A CN201910538704A CN110389860A CN 110389860 A CN110389860 A CN 110389860A CN 201910538704 A CN201910538704 A CN 201910538704A CN 110389860 A CN110389860 A CN 110389860A
- Authority
- CN
- China
- Prior art keywords
- state
- change
- operation object
- update
- condition
- 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
Links
Classifications
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/1458—Management of the backup or restore process
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据处理方法、装置、电子设备及存储介质。所述方法包括:响应于针对操作对象的更新请求,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作;在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态;在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。本发明可以能够避免对所有数据执行回滚操作(即数据恢复),能够提高数据恢复速度,减少了数据恢复时间,并且,仅对更新操作对象对应的操作对象进行状态恢复,可以达到节省系统资源的效果。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
目前,多数企业的互联网产品都会有对应的管理后台,管理后台往往能够比较方便的维护互联网产品中产生的用户数据,但也不可避免的可能会发生管理上的误操作。
在发生误操作时,需要对数据进行修改,而对于重要数据的修改,通常情况下需要日志记录在指定的时间恢复。
而在目前的方案中,由于系统仅是记录了关于数据修改的日志,而业务人员并不清楚是哪条或哪几条数据的修改导致了误操作的发生,因此,在指定的时间恢复数据时,需要对保存的全部日志数据进行状态恢复,恢复的数据量较大,导致恢复速度较慢,恢复时间长,并且,对于不需要执行恢复的数据进行状态恢复,会导致系统资源的浪费。
发明内容
本发明实施例所要解决的技术问题是提供一种数据处理方法、装置、电子设备及存储介质,以解决现有技术中数据恢复速度较慢,恢复时间长,且会导致系统资源浪费的技术问题。
为了解决上述问题,本发明实施例提供了一种数据处理方法,包括:响应于针对操作对象的更新请求,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作;在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态;在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述记录所述操作对象在更新之前的改动前状态,包括:根据所述操作对象的描述信息,获取所述操作对象的业务属性;在所述业务属性满足业务安全属性条件的情况下,记录所述操作对象在更新之前的改动前状态。
优选地,所述预置回滚条件包括时间条件,所述在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态,包括:在所述更新操作完成时,记录更新完成时间;依据当前时间和所述更新完成时间,计算得到时间差值;在所述时间差值满足所述时间条件时,根据所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象对应的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述预置回滚条件包括误操作条件,所述在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态,包括:根据所述至少一个改动后状态的操作对象,检测与所述操作对象对应的第一业务的业务状态信息;在依据所述业务状态信息确定所述第一业务出现异常时,判定所述更新操作满足所述误操作条件;在所述更新操作满足所述误操作条件时,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,在所述对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态之后,还包括:在所述更新操作满足再执行条件的情况下,对所述操作对象再次执行所述更新操作,将所述操作对象的状态由所述改动前状态更新为所述至少一个改动后状态。
优选地,在所述更新操作为多次更新操作时,所述在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态,包括:在第i次更新操作完成时,记录所述操作对象在第i次更新之后的第一状态;i=1、2、…,所述第一状态为所述至少一个改动后状态中的一个状态;在第i+1次更新操作完成时,记录所述操作对象在第i+1次更新之后的第二状态;所述第二状态为所述至少一个改动后状态中的一个状态;所述在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态,包括:在所述更新操作满足预置回滚条件时,根据所述第二状态和所述第一状态,对所述操作对象执行一次回滚操作,将所述操作对象的状态由所述第二状态回滚至所述第一状态;对所述操作对象执行至少一次回滚操作,将所述操作对象的状态由所述第一状态回滚至所述改动前状态。
优选地,在所述操作对象为多个时,所述在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态,包括:根据所述至少一个改动后状态的多个所述操作对象,检测与多个所述操作对象对应的第二业务的业务详情信息;根据所述业务详情信息,从多个所述操作对象中提取出至少一个目标操作对象;所述目标操作对象是指导致所述第二业务出现异常的操作对象;根据所述改动前状态和所述至少一个改动后状态,对所述至少一个目标操作对象执行回滚操作,将所述至少一个目标操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述操作对象包括日志数据、数据库版本中的任一种。
为了解决上述问题,本发明实施例提供了一种数据处理装置,包括:更新操作执行模块,用于响应于针对操作对象的更新请求,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作;改动状态记录模块,用于在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态;回滚操作执行模块,用于在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述更新操作执行模块包括:业务属性获取子模块,用于根据所述操作对象的描述信息,获取所述操作对象的业务属性;改动前状态记录子模块,用于在所述业务属性满足业务安全属性条件的情况下,记录所述操作对象在更新之前的改动前状态。
优选地,所述预置回滚条件包括时间条件,所述回滚操作执行模块包括:更新完成时间记录子模块,用于在所述更新操作完成时,记录更新完成时间;时间差值计算子模块,用于依据当前时间和所述更新完成时间,计算得到时间差值;第一回滚操作执行子模块,用于在所述时间差值满足所述时间条件时,根据所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象对应的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述预置回滚条件包括误操作条件,所述回滚操作执行模块包括:业务状态检测子模块,用于根据所述至少一个改动后状态的操作对象,检测与所述操作对象对应的第一业务的业务状态信息;误操作判定子模块,用于在依据所述业务状态信息确定所述第一业务出现异常时,判定所述更新操作满足所述误操作条件;第二回滚操作执行子模块,用于在所述更新操作满足所述误操作条件时,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,还包括:更新操作再执行模块,用于在所述更新操作满足再执行条件的情况下,对所述操作对象再次执行所述更新操作,将所述操作对象的状态由所述改动前状态更新为所述至少一个改动后状态。
优选地,在所述更新操作为多次更新操作时,所述改动状态记录模块包括:第一状态记录子模块,用于在第i次更新操作完成时,记录所述操作对象在第i次更新之后的第一状态;i=1、2、…,所述第一状态为所述至少一个改动后状态中的一个状态;第二状态记录子模块,用于在第i+1次更新操作完成时,记录所述操作对象在第i+1次更新之后的第二状态;所述第二状态为所述至少一个改动后状态中的一个状态;所述回滚操作执行模块包括:第三回滚操作执行子模块,用于在所述更新操作满足预置回滚条件时,根据所述第二状态和所述第一状态,对所述操作对象执行一次回滚操作,将所述操作对象的状态由所述第二状态回滚至所述第一状态;第四回滚操作执行子模块,用于对所述操作对象执行至少一次回滚操作,将所述操作对象的状态由所述第一状态回滚至所述改动前状态。
优选地,在所述操作对象为多个时,所述回滚操作执行模块包括:业务详情信息检测子模块,用于根据所述至少一个改动后状态的多个所述操作对象,检测与多个所述操作对象对应的第二业务的业务详情信息;目标操作对象提取子模块,用于根据所述业务详情信息,从多个所述操作对象中提取出至少一个目标操作对象;所述目标操作对象是指导致所述第二业务出现异常的操作对象;第五回滚操作执行子模块,用于根据所述改动前状态和所述至少一个改动后状态,对所述至少一个目标操作对象执行回滚操作,将所述至少一个目标操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述操作对象包括日志数据、数据库版本中的任一种。
为了解决上述问题,本发明实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的数据处理方法。
为了解决上述问题,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的数据处理方法。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中,通过响应于针对操作对象的更新请求,记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作,在更新操作完成时,记录操作对象在更新之后的至少一个改动后状态,在更新操作满足预置回滚条件时,根据记录的改动前状态和至少一个改动后状态,对操作对象执行回滚操作,将操作对应的状态由至少一个改动后状态回滚之改动前状态。本发明实施例通过记录操作对象在改动前和改动后的状态,而在需要对操作对象执行回滚操作时,可以根据记录的改动前和改动后的状态对操作对象执行回滚操作,因此,本发明能够避免对所有数据执行回滚操作(即数据恢复),能够提高数据恢复速度,减少了数据恢复时间,并且,仅对更新操作对象对应的操作对象进行状态恢复,可以达到节省系统资源的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
图1是本发明实施例提供的一种数据处理方法的步骤流程图;
图2是本发明实施例提供的一种数据处理方法的步骤流程图;
图3是本发明实施例提供的一种数据处理流程的示意图;
图4是本发明实施例提供的一种数据处理装置的结构示意图;
图5是本发明实施例提供的一种数据处理装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述数据改动的状态和业务,但这些状态和业务不应限于这些术语。这些术语仅用来将数据改动的状态和业务彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一状态也可以被称为第二状态,类似地,第二状态也可以被称为第一状态。
参照图1,示出了本发明实施例提供的一种数据处理方法的步骤流程图,具体可以包括如下步骤:
步骤101:响应于针对操作对象的更新请求,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作。
在本发明实施例中,操作对象可以包括日志数据、数据库版本等对象中的任一种。
更新操作是指对日志数据或数据库版本等对象的修改操作,例如,将数据从3修改为5,或将数据库版本从10版本修改为17版本等等。
改动前状态是指在对操作对象执行更新操作之前的状态,例如,对于数据库版本而言,对数据库执行版本更新,将数据库由07版本更新为10版本,则该数据库的改动前状态即为07版本。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
更新请求是指触发生成的用于对操作对象执行更新操作的请求。
更新请求可以是由业务人员当前设置的更新指令生成的,如,在需要将数据库版本从07版本更新为10版本时,业务人员可以向系统发送一条触发数据库版本的更新指令,该更新指令即可以作为数据库版本的更新请求。
更新请求还可以是根据业务人员预先设置的触发条件生成的,例如,对于视频类APP(Application,应用程序)而言,在晚高峰可以修改某些配置以提高容纳用户数,及用户观看视频的效果等,而在晚高峰结束后再恢复至原状态,以减少系统的负荷等,而业务人员预先设置的晚高峰时段触发某些配置修改的条件可以作为触发更新请求的条件,即在达到晚高峰时触发某些配置的更新请求。
在系统接收到针对操作对应的更新请求之后,可以响应该更新请求,记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作,如,在需要将数据库版本从10版本升级为18版本时,则数据库对应的改动前状态即为10版本,更新操作即为将数据库版本从10版本升级为18版本。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
当然,在本发明中记录的改动前状态可以保存于与操作对应的日志中,例如,参照图3,示出了本发明实施例提供的一种数据处理流程的示意图,如图3所示,某个event(更新事件)对应的日志信息(log)中,记录有data_id:更新的数据(即操作对象),origin_data:改动前状态等。
在记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作之后,执行步骤102。
步骤102:在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态。
改动后状态是指操作对象在执行更新操作之后的状态,例如,将某条弹幕的审核状态从审核通过状态修改为审核未通过状态,则该弹幕的审核未通过状态即为改动后状态;或,数据库版本从10版本修改为17版本,则更新后的数据库的17版本即为改动后状态。
当然,对操作对象而言,执行的更新操作可以是一次更新操作,也可以是多次更新操作,例如,系统预先设置数据库版本自动更新的情况,在数据库版本更新之前的版本为07版本,第一次更新之后的数据库版本为10版本,第二次更新之后的数据库版本的为17版本,则数据库对应的改动后状态即包含了两个更改后状态。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在对操作对象执行的更新操作完成之后,可以记录操作对象在更新之后的改动后状态。
当然,在本发明中记录的改动前状态可以保存于与操作对应的日志中,例如,如图3所示,某个event(更新事件)对应的日志信息(log)中,记录有data_id:更新的数据(即操作对象),new_data:改动后状态等。
而在对操作对象执行的更新操作为多次更新操作的情况,可以对操作对象在每次更新操作后的改动后状态均进行记录,并记录每个改动后状态所对应的更新时间,从而可以在后续对操作对象执行回滚操作时,可以依据时间依次对操作对象执行多次回滚操作,具体地,将在下述过程进行详细描述,本发明实施例对此不加以限制。
在记录操作对象在更新之后的至少一个改动后状态之后,执行步骤103。
步骤103:在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
预置回滚条件可以是由业务人员预先设置的与操作对象对应的回滚条件,回滚条件可以包括时间条件,也可以包括误操作条件等等,对于时间条件和误操作条件,将在下述优选实施例中进行详细描述,本发明实施例在此不再加以详细描述。
而对于预置回滚条件可以由业务人员根据业务需求预先设定,本发明实施例对此不加以限制。
状态回滚(即undo操作)也即状态恢复,是将操作对象的状态由更新之后的状态恢复至更新之前的状态。
在更新操作满足预置回滚条件时,可以将操作对象的状态由至少一个改动后状态回滚至改动前状态,例如,对于数据库版本的更新操作,更新操作是将数据库版本从10版本更新为17版本,而对数据库版本的回滚操作,即将数据库的版本从17版本回滚至10版本。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的一种示例,不作为对本发明实施例的唯一限制。
对于预置回滚条件为时间条件和误操作条件的回滚操作,以下述优选实施例分别对操作对象的回滚操作进行详细描述。
在本发明的一种优选实施例中,所述预置回滚条件包括时间条件,上述步骤103可以包括:
子步骤A1:在所述更新操作完成时,记录更新完成时间。
在本发明实施例中,更新完成时间是指对操作对象更新完成的时间,例如,对于数据库版本升级而言,在将数据库版本从10版本升级为17版本时,在2019-04-08,12:10完成数据库版本的升级时,则将2019-04-08,12:10作为更新完成时间。
在更新操作完成时,可以记录更新操作完成的时间,即记录更新完成时间。
在记录更新完成时间之后,执行子步骤A2。
子步骤A2:依据当前时间和所述更新完成时间,计算得到时间差值。
当前时间是指系统当前所处的时间。
时间差值是指当前时间和更新完成时间之间的差值,例如,在当前时间为2019-04-08,12:25,更新完成时间为2019-04-08,12:10时,时间差值即为15min。
系统可以根据当前时间和预先记录的更新完成时间,计算得到时间差值,并执行子步骤A3。
子步骤A3:在所述时间差值满足所述时间条件时,根据所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象对应的状态由所述至少一个改动后状态回滚至所述改动前状态。
时间条件是指由业务人员预先设置的时间差值条件。
在计算得到时间差值满足时间条件的情况下,可以根据记录的改动前状态和至少一个改动后状态,对操作对象执行undo操作(即回滚操作),以将操作对象对应的状态由至少一个改动后状态回滚至改动前状态,例如,对于数据库版本的更新操作,更新操作是将数据库版本从07版本更新为10版本,而对数据库版本的回滚操作,即是将数据库的版本从10版本回滚至07版本;或者,对于一条数据的更新操作而言,更新操作是将该数据从数值8更新为数值10,而对该条数据的回滚操作,即是将数据的数值从10回滚至8。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
上述以时间条件作为回滚条件的方案,可以应用于在特定时间对操作对象进行修改,并在特定时间之后将操作对象的状态返回至原状态的场景下,例如,对于视频类APP(Application,应用程序)而言,在晚高峰可以修改某些配置以提高容纳用户数,及用户观看视频的效果等,而在晚高峰结束后再恢复至原状态,以减少系统的负荷等。
当然,以时间条件作为回滚条件还可以应用于其它场景下,上述场景仅是本发明实施例提供的一种示例场景,不作为对本发明的唯一限制。
在回滚操作的条件为误操作条件时,以下述优选实施例进行详细描述。
在本发明的另一种优选实施例中,所述预置回滚条件包括误操作条件,上述步骤103可以包括:
子步骤B1:根据所述至少一个改动后状态的操作对象,检测与所述操作对象对应的第一业务的业务状态信息。
在本发明实施例中,第一业务是指与操作对象关联的业务,例如,在操作对象为视频APP的某个基础配置时,该操作对象对应的第一业务即为该APP对应的视频配置业务;而在操作对象为数据库的版本时,该操作对象对应的第一业务即为数据库升级业务。
业务状态信息是指第一业务的运行状态信息,业务状态信息可以包括第一业务的运行情况正常、第一业务的运行情况异常等信息。
在第一业务的运行过程中,可以生成与第一业务对应的业务日志,在业务日志中记录有第一业务的运行详情信息,如运行耗时、运行出现异常、运行状况良好等信息,通过预先记录的业务日志可以检测到第一业务的业务状态信息。
而在对操作对象执行了多次更新操作的情况下,可以记录每次更新操作所对应的更新完成时间,进而,可以根据业务日志中记录的时间,检测出操作对象在每次更新之后的业务状态信息。
本发明实施例通过检测与操作对象对应的第一业务的业务状态信息,是为了检测对操作对象执行的更新操作是否影响了第一业务的正常运行,从而在对操作对象更新的同时,能够避免更新操作对业务带来的影响。
在检测到与操作对象对应的第一业务的业务状态信息之后,执行子步骤B2。
子步骤B2:在依据所述业务状态信息确定所述第一业务出现异常时,判定所述更新操作满足所述误操作条件。
误操作条件是指由业务人员预先设置的误操作对应的条件。如,误操作条件可以为用户在修改某一条或几条数据时,修改错了数据,或者修改数据之后对相关业务造成了影响,则可以将数据修改的操作确定为误操作,由该误操作可以触发生成误操作条件,即上述对数据进行修改的操作满足误操作条件,或者是将数据库版本更新为最新版本时,可能会出现各种错误,则可以将版本升级操作确定为误操作,由该误操作可以触发生成误操作条件,即上述对数据库版本进行升级的操作满足误操作条件。
在检测到第一业务的业务状态信息之后,可以依据业务状态信息判断第一业务是否出现异常,例如,在将数据库的版本从10版本更新为18版本时,由于18版本的数据库会出现一些bug,如存储数据的格式不完整,或某种格式的数据无法保存等问题,存在保存数据的过程中会产生数据保存失败的情况,而数据保存过程生成的日志会显示出业务状态异常的信息。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在依据业务状态信息确定第一业务出现异常时,则可以判定对操作对象执行的更新操作满足误操作条件。
子步骤B3:在所述更新操作满足所述误操作条件时,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
在更新操作满足误操作条件时,则可以根据记录的至少一个改动后状态和改动前状态,对操作对象执行回滚操作,以将操作对象的状态由至少一个改动后状态回滚至改动前状态。
上述以误操作条件作为回滚条件的方案,可以应用于APP某些配置修改错误时,及时对这些配置的状态进行恢复;或数据库版本升级可能导致数据存储失败或数据丢失现象时,及时对数据库版本进行回滚,避免数据大量丢失。
本发明实施例通过更新操作对象对应的对向执行回滚操作,能够避免对所有数据执行回滚操作(即数据恢复),能够提高数据恢复速度,减少了数据恢复时间。
当然,在本发明中,针对操作对象为多个的情况下,可以参照下述优选实施例进行详细描述。
在本发明的另一优选实施例中,在所述操作对象为多个时,上述步骤103可以包括:
子步骤C1:根据所述至少一个改动后状态的多个所述操作对象,检测与多个所述操作对象对应的第二业务的业务详情信息。
在本发明实施例中,第二业务是指与多个操作对象相关联的业务,例如,对于某视频APP而言,需要对某些业务配置进行修改,这些业务配置构成了多个操作对象,而与这些业务配置关联的第二业务即为视频业务。
业务详情信息是指每个操作对象在更新之后,对第二业务在运行过程中记录的详细描述信息,例如,多个操作对象包括对象A和对象B,对象A在更新之后,造成第二业务运行速度加快5s、内存资源占用率较之前多5MB,对象B在更新之后,造成第二业务运行速度降低6s、内存资源占用率较之前少10MB等。
在第二业务的运行过程中,可以生成与第二业务对应的业务日志,在业务日志中记录有第二业务的业务详情信息,如运行耗时、运行出现异常、运行状况良好等业务详情信息,通过预先记录的业务日志可以检测到第二业务的业务详情信息。
在检测到与多个操作对象对应的第二业务的业务详情信息之后,执行子步骤C2。
子步骤C2:根据所述业务详情信息,从多个所述操作对象中提取出至少一个目标操作对象。
目标操作对象是指多个操作对象中,在更新后会导致第二业务出现异常的操作对象,例如,操作对象包括对象1、对象2、对象3、对象4和对象5,上述5个操作对象与第二业务相关联,在对上述5个操作对象均执行更新操作之后,对象1、对象2和对象5的更新操作导致了第二业务的运行出现异常,则将对象1、对象2和对象5作为目标操作对象。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在得到第二业务的业务详情信息,可以根据业务详情信息,获取到每个操作对象在更新之后对第二业务造成的影响,从而可以提取出具体是哪个操作对象的更新操作导致的第二业务出现的异常,进而,从多个操作对象中可以提取出一个或多个目标操作对象。
子步骤C3:根据所述改动前状态和所述至少一个改动后状态,对所述至少一个目标操作对象执行回滚操作,将所述至少一个目标操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
在从多个操作对象中提取出至少一个目标对象之后,可以根据至少一个目标操作对象分别对应的改动前状态和至少一个改动后状态,对至少一个目标操作对象执行回滚操作,以将至少一个目标操作对象的状态由至少一个改动后状态回滚至改动前状态。
在本发明中,可以预先创建一个配置文件,以记录每个更新操作对应的日志。如图3所示,conf_package:配置文件,version:版本,即不同配置文件的版本,本发明中,可以针对不同的业务配置不同版本的conf_package,进而,在后续过程,可以便于根据业务查询对与业务关联的操作对象执行的更新操作。event_ids:执行的更新操作对应的id标识,createtime:日志创建时间;comments:注解,即更新操作的描述信息;operator:操作者,即执行更新操作的业务人员。log:对每次更新操作保存的日志,在更新操作对应的log中记录有event_id:更新操作标识,即执行的哪种更新操作,table:标签,表示执行该更新操作的数据及状态等标签;data_id:更新的数据(即操作对象),origin_data:改动前状态;new_data:改动后状态。通过针对不同业务创建的配置文件,可以清楚了解到对哪些操作对象执行了何种更新操作,并详细记录了操作对象在执行更新操作之前的改动前状态,及在执行更新操作之后的改动后状态。
本发明实施例通过记录操作对象的改动前状态和改动后状态,从而可以针对某一个或多个指定的操作对象执行回滚操作,无需对所有操作对象执行回滚操作,能够大幅度提高数据的恢复速度。
本发明实施例提供的数据处理方法,通过响应于针对操作对象的更新请求,记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作,在更新操作完成时,记录操作对象在更新之后的至少一个改动后状态,在更新操作满足预置回滚条件时,根据记录的改动前状态和至少一个改动后状态,对操作对象执行回滚操作,将操作对应的状态由至少一个改动后状态回滚之改动前状态。本发明实施例通过记录操作对象在改动前和改动后的状态,而在需要对操作对象执行回滚操作时,可以根据记录的改动前和改动后的状态对操作对象执行回滚操作,因此,本发明能够避免对所有数据执行回滚操作(即数据恢复),能够提高数据恢复速度,减少了数据恢复时间,并且,仅对更新操作对象对应的操作对象进行状态恢复,可以达到节省系统资源的效果。
参照图2,示出了本发明实施例提供的一种数据处理方法的步骤流程图,具体可以包括如下步骤:
步骤201:响应于针对操作对象的更新请求,根据所述操作对象的描述信息,获取所述操作对象的业务属性。
在本发明实施例中,操作对象可以包括日志数据、数据库版本等对象中的任一种。
业务属性是指操作对象所具有的属性,例如,对于数据而言,数据具有数值属性、物理属性;对于数据库而言,具有版本属性、存储的数据属性等等。
更新请求是指触发生成的用于对操作对象执行更新操作的请求。
更新请求可以是由业务人员当前设置的更新指令生成的,如,在需要将数据库版本从07版本更新为10版本时,业务人员可以向系统发送一条触发数据库版本的更新指令,该更新指令即可以作为数据库版本的更新请求。
更新请求还可以是根据业务人员预先设置的触发条件生成的,例如,对于视频类APP(Application,应用程序)而言,在晚高峰可以修改某些配置以提高容纳用户数,及用户观看视频的效果等,而在晚高峰结束后再恢复至原状态,以减少系统的负荷等,而业务人员预先设置的晚高峰时段触发某些配置修改的条件可以作为触发更新请求的条件,即在达到晚高峰时触发某些配置的更新请求。
在与操作对象对应的业务中预先记录操作对应的业务属性,在系统接收到针对操作对象的更新请求时,可以响应该更新请求,并从预先的记录中提取出操作对象的业务属性。
在获取操作对象的业务属性之后,执行步骤202。
步骤202:在所述业务属性满足业务安全属性条件的情况下,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作。
业务安全属性条件是指由业务人员预先设置的属性条件,本发明中,不需要对所有的操作对象的更新操作均进行记录和状态恢复,而是仅针对部分操作对象的更新可能会影响业务的进行或对业务执行造成影响,那么就需要对这部分操作对象的状态进行记录。
而对于业务安全属性条件可以针对不同的业务需求及操作对象进行设置,本发明实施例对于业务安全属性条件的具体条件不加以限制。
而在本发明实施例中,在操作对象入库前,可以获取操作对象的所有业务属性,而在监测到与操作对象对应的更新操作时,可以根据预先获取的操作对象的所有业务属性,与业务安全属性条件进行比较,以确定操作对象的业务属性是否满足业务安全属性条件。
具体地,在根据操作对象的业务属性,判定该业务属性会对与操作对象对应的业务的进行或对业务执行造成影响,或可能导致业务运行异常的情况下,则判定该业务属性满足业务安全属性条件。
而对于某些操作对象的业务属性,仅是为关联业务配置基础属性,如对于视频APP而言,对于视频播放时播放速度的配置等,并不会影响业务的正常运行,则判定这些基础属性不满足业务安全属性条件。
更新操作是指对日志数据或数据库版本等对象的修改操作,例如,将数据从3修改为5,或将数据库版本从10版本修改为17版本等等。
改动前状态是指在对操作对象执行更新操作之前的状态,例如,对于数据库版本而言,对数据库执行版本更新,将数据库由07版本更新为10版本,则该数据库的改动前状态即为07版本。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在操作对象的业务属性满足业务安全属性条件的情况下,可以记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作,如,在需要将数据库版本从10版本升级为18版本时,则数据库对应的改动前状态即为10版本,更新操作即为将数据库版本从10版本升级为18版本。
当然,在本发明中记录的改动前状态可以保存于与操作对应的日志中,例如,参照图3,示出了本发明实施例提供的一种数据处理流程的示意图,如图3所示,某个event(更新事件)对应的日志信息(log)中,记录有data_id:更新的数据(即操作对象),origin_data:改动前状态等。
在记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作之后,执行步骤203。
步骤203:在第i次更新操作完成时,记录所述操作对象在第i次更新之后的第一状态。
在本发明中,i=1、2、…,即i为大于等于1的正整数。
第i次更新操作是指在对操作对象执行多次更新操作时,多次更新操作中除最后一次更新操作外的某一次的更新操作,例如,对操作对象执行的多次更新操作依次包括第1次更新操作、第2次更新操作、第3次更新操作和第4次更新操作,则第i次更新操作可以为第1次更新操作,也可以为第2次更新操作,还可以为第3次更新操作。
第一状态是指在操作对象在第i次更新之后的状态,例如,对于数据库版本升级而言,包括三次升级操作,分别为将数据库版本从07版本升级为10版本,再从10版本升级为12版本,最后从12版本升级为15版本,而第i次升级操作为从10版本升级为12版本,则第一状态即为数据库版本为12版本的状态。
第i次更新操作是在前i-1次更新操作的基础上,操作对象所对应的最新状态再次执行第i次更新操作的过程,而并非是以原始操作对象直接执行第i次更新操作。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在第i次更新操作完成之后,可以获取操作对象在第i次更新之后的第一状态,并对操作对象的第一状态进行记录,然后执行步骤204。
步骤204:在第i+1次更新操作完成时,记录所述操作对象在第i+1次更新之后的第二状态。
第i+1次更新操作是指在对操作对象执行多次更新操作时,多次更新操作中除第一次更新操作外的某一次的更新操作,例如,对操作对象执行的多次更新操作依次包括第1次更新操作、第2次更新操作、第3次更新操作和第4次更新操作,则第i+1次更新操作可以为第2次更新操作,也可以为第3次更新操作,还可以为第4次更新操作。
第二状态是指在操作对象在第i+1次更新之后的状态,例如,对于数据库版本升级而言,包括三次升级操作,分别为将数据库版本从07版本升级为10版本,再从10版本升级为12版本,最后从12版本升级为15版本,而第i+1次更新操作(即升级操作)为从10版本升级为12版本,则第二状态即为数据库版本为12版本的状态。
第i+1次更新操作是在前i次更新操作的基础上,操作对象所对应的最新状态再次执行第i+1次更新操作的过程,而并非是以原始操作对象直接执行第i+1次更新操作。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在第i+1次更新操作完成之后,可以获取操作对象在第i+1次更新之后的第二状态,并对操作对象的第二状态进行记录,然后执行步骤205。
所述第二状态为所述至少一个改动后状态中的一个状态。
步骤205:在所述更新操作满足预置回滚条件时,根据所述第二状态和所述第一状态,对所述操作对象执行一次回滚操作,将所述操作对象的状态由所述第二状态回滚至所述第一状态。
预置回滚条件可以是由业务人员预先设置的与操作对象对应的回滚条件,回滚条件可以包括时间条件,也可以包括误操作条件等等,对于时间条件和误操作条件,将在下述优选实施例中进行详细描述,本发明实施例在此不再加以详细描述。
而对于预置回滚条件可以由业务人员根据业务需求预先设定,本发明实施例对此不加以限制。
状态回滚(即undo操作)也即状态恢复,是将操作对象的状态由更新之后的状态恢复至更新之前的状态。
在更新操作满足预置回滚条件时,可以将操作对象的状态由第二状态回滚至第一状态,例如,对于数据库版本的更新操作,更新操作是将数据库版本从10版本更新为17版本,而对数据库版本的回滚操作,即将数据库的版本从17版本回滚至10版本。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的一种示例,不作为对本发明实施例的唯一限制。
对于预置回滚条件为时间条件和误操作条件的回滚操作,具体地,可以是如上述方法实施例对时间条件和误操作条件描述的内容,本发明实施例在此不再加以详细描述。
在更新操作满足预置回滚条件的情况下,可以将操作对象的状态由第二状态回滚至第一状态。
在将操作对象的状态由第二状态回滚至第一状态之后,执行步骤206。
步骤206:对所述操作对象执行至少一次回滚操作,将所述操作对象的状态由所述第一状态回滚至所述改动前状态。
至少一次回滚操作是指在对操作对象执行回滚操作之后,再次执行的一次或多次回滚操作,从而将操作对象的状态由第一状态回滚至第一状态,例如,对于数据库版本升级而言,多次更新操作为将数据库版本从07版本升级为10版本,再从10版本升级为12版本,最后从12版本升级为15版本,而在数据库的第二状态为15版本时,执行一次回滚操作,则数据库回滚之后的第一状态即为12版本,即由15版本回滚至12版本;然后需要再对数据库执行两次回滚操作,即将数据库版本从12版本(第一状态)回滚至10版本,最后将数据库版本从10版本回滚至07版本,从而完成数据库的回滚操作。
而对于执行多次回滚操作的情况,并不需要在执行每次回滚操作时均执行更新操作是否满足预置回滚条件的步骤,在对操作对象执行了多次更新操作时,会对每次更新操作之前及执行更新操作之后,操作对象的状态均进行记录,而根据在检测到多次更新操作中的某次更新操作满足预置回滚条件时,可以根据预先记录的与操作对象对应的业务的运行日志,自动判断出需要将操作对象回滚至哪次更新操作之前的状态,即对操作对象执行相应的回滚操作即可。例如,对于数据库版本升级而言,多次更新操作为将数据库版本从07版本升级为10版本,从10版本升级为12版本,再从12版本升级为15版本,最后从15版本升级至18版本,而在数据库版本升级至18版本时检测到,对数据库执行的升级操作满足了预置回滚条件,可以检测数据库在运行过程中生成的运行日志,在检测到12版本会对数据库的正常运行造成影响时,将在10版本视为改动前状态,将18版本视为改动后状态,从而对数据库执行回滚操作,以将数据库版本从18版本回滚至10版本。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的技术方案。
本发明实施例可以针对操作执行的多次更新操作,完成多次回滚操作,从而可以达到数据快速恢复原状态的目的,加强了对数据的保护。
在将操作对象的状态由第一状态回滚至改动前状态之后,执行步骤207。
步骤207:在所述更新操作满足再执行条件的情况下,对所述操作对象再次执行所述更新操作,将所述操作对象的状态由所述改动前状态更新为所述至少一个改动后状态。
再执行条件是指与更新操作对应的重新执行的条件,即对操作对象重新执行更新操作的条件。
在对操作对象执行更新操作,将操作对象由第一状态更新为第二状态之后,在更新操作满足预置回滚条件,且将操作对象由第二状态回滚至第一状态之后,可以对更新操作进行监控,在更新操作满足再执行条件的情况下,则可以对操作状态再次执行更新操作,以将操作对象的状态由第一状态更新为第二状态,例如,对于数据库版本升级而言,更新操作(即升级操作)是将数据库版本从07版本升级为10版本,而对数据库版本执行回滚操作时,是将数据库版本从10版本回滚至07版本,而在更新操作满足再执行条件的情况下,则可以对数据库版本再次执行更新操作,即将数据库版本从07版本更新为10版本。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
上述示例可以应用于需要重复执行回滚和重新执行(即undo操作和redo操作)的场景中,例如,对于视频APP而言,在晚高峰可以修改某些配置以提高容纳用户数,及用户观看视频的效果等,而在晚高峰结束后再恢复至原状态,以减少系统的负荷等,而在到了第二天晚高峰时,可以对这些配置执行再次的修改操作…,以此循环对这些配置执行undo操作(即回滚操作)和redo操作(即重执行操作)。
当然,上述示例还可以应用于其它场景中,具体地,可以根据业务需求而定,本发明实施例在此不再一一赘述。
本发明实施例提供的数据处理方法,通过响应于针对操作对象的更新请求,记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作,在更新操作完成时,记录操作对象在更新之后的至少一个改动后状态,在更新操作满足预置回滚条件时,根据记录的改动前状态和至少一个改动后状态,对操作对象执行回滚操作,将操作对应的状态由至少一个改动后状态回滚之改动前状态。本发明实施例通过记录操作对象在改动前和改动后的状态,而在需要对操作对象执行回滚操作时,可以根据记录的改动前和改动后的状态对操作对象执行回滚操作,因此,本发明能够避免对所有数据执行回滚操作(即数据恢复),能够提高数据恢复速度,减少了数据恢复时间,并且,仅对更新操作对象对应的操作对象进行状态恢复,可以达到节省系统资源的效果。
参照图4,示出了本发明实施例提供的一种数据处理装置的结构示意图,具体可以包括如下模块:
更新操作执行模块410,用于响应于针对操作对象的更新请求,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作;
改动状态记录模块420,用于在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态;
回滚操作执行模块430,用于在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述预置回滚条件包括时间条件,所述回滚操作执行模块430包括:
更新完成时间记录子模块,用于在所述更新操作完成时,记录更新完成时间;
时间差值计算子模块,用于依据当前时间和所述更新完成时间,计算得到时间差值;
第一回滚操作执行子模块,用于在所述时间差值满足所述时间条件时,根据所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象对应的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述预置回滚条件包括误操作条件,所述回滚操作执行模块430包括:
业务状态检测子模块,用于根据所述至少一个改动后状态的操作对象,检测与所述操作对象对应的第一业务的业务状态信息;
误操作判定子模块,用于在依据所述业务状态信息确定所述第一业务出现异常时,判定所述更新操作满足所述误操作条件;
第二回滚操作执行子模块,用于在所述更新操作满足所述误操作条件时,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,在所述操作对象为多个时,所述回滚操作执行模块430包括:
业务详情信息检测子模块,用于根据所述至少一个改动后状态的多个所述操作对象,检测与多个所述操作对象对应的第二业务的业务详情信息;
目标操作对象提取子模块,用于根据所述业务详情信息,从多个所述操作对象中提取出至少一个目标操作对象;所述目标操作对象是指导致所述第二业务出现异常的操作对象;
第五回滚操作执行子模块,用于根据所述改动前状态和所述至少一个改动后状态,对所述至少一个目标操作对象执行回滚操作,将所述至少一个目标操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
优选地,所述操作对象包括日志数据、数据库版本中的任一种。
本发明实施例提供的数据处理装置,通过响应于针对操作对象的更新请求,记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作,在更新操作完成时,记录操作对象在更新之后的至少一个改动后状态,在更新操作满足预置回滚条件时,根据记录的改动前状态和至少一个改动后状态,对操作对象执行回滚操作,将操作对应的状态由至少一个改动后状态回滚之改动前状态。本发明实施例通过记录操作对象在改动前和改动后的状态,而在需要对操作对象执行回滚操作时,可以根据记录的改动前和改动后的状态对操作对象执行回滚操作,因此,本发明能够避免对所有数据执行回滚操作(即数据恢复),能够提高数据恢复速度,减少了数据恢复时间,并且,仅对更新操作对象对应的操作对象进行状态恢复,可以达到节省系统资源的效果。
参照图5,示出了本发明实施例提供的一种数据处理装置的结构示意图,具体可以包括如下模块:
更新操作执行模块510,用于响应于针对操作对象的更新请求,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作;
改动状态记录模块520,用于在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态;
回滚操作执行模块530,用于在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态;
更新操作再执行模块540,用于在所述更新操作满足再执行条件的情况下,对所述操作对象再次执行所述更新操作,将所述操作对象的状态由所述改动前状态更新为所述至少一个改动后状态。
优选地,所述更新操作执行模块510包括:
业务属性获取子模块511,用于根据所述操作对象的描述信息,获取所述操作对象的业务属性;
改动前状态记录子模块512,用于在所述业务属性满足业务安全属性条件的情况下,记录所述操作对象在更新之前的改动前状态。
优选地,在所述更新操作为多次更新操作时,所述改动状态记录模块520包括:
第一状态记录子模块521,用于在第i次更新操作完成时,记录所述操作对象在第i次更新之后的第一状态;i=1、2、…,所述第一状态为所述至少一个改动后状态中的一个状态;
第二状态记录子模块522,用于在第i+1次更新操作完成时,记录所述操作对象在第i+1次更新之后的第二状态;所述第二状态为所述至少一个改动后状态中的一个状态;
所述回滚操作执行模块530包括:
第三回滚操作执行子模块531,用于在所述更新操作满足预置回滚条件时,根据所述第二状态和所述第一状态,对所述操作对象执行一次回滚操作,将所述操作对象的状态由所述第二状态回滚至所述第一状态;
第四回滚操作执行子模块532,用于对所述操作对象执行至少一次回滚操作,将所述操作对象的状态由所述第一状态回滚至所述改动前状态。
本发明实施例提供的数据处理装置,通过响应于针对操作对象的更新请求,记录操作对象在更新之前的改动前状态,并对操作对象执行更新操作,在更新操作完成时,记录操作对象在更新之后的至少一个改动后状态,在更新操作满足预置回滚条件时,根据记录的改动前状态和至少一个改动后状态,对操作对象执行回滚操作,将操作对应的状态由至少一个改动后状态回滚之改动前状态。本发明实施例通过记录操作对象在改动前和改动后的状态,而在需要对操作对象执行回滚操作时,可以根据记录的改动前和改动后的状态对操作对象执行回滚操作,因此,本发明能够避免对所有数据执行回滚操作(即数据恢复),能够提高数据恢复速度,减少了数据恢复时间,并且,仅对更新操作对象对应的操作对象进行状态恢复,可以达到节省系统资源的效果。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可选的,本发明还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
可选的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据处理方法中的步骤。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例中,通过在监测到与操作对象对应的更新操作时,记录操作对象在更新之前的第一状态,在更新操作完成时,记录操作对象在更新之后的第二状态,并在更新操作满足预置回滚条件时,将操作对象对应的状态由第二状态回滚至第一状态。本发明实施例通过对更新操作对象对应的对向执行回滚操作,能够避免对所有数据执行回滚操作(即数据恢复),能够提高数据恢复速度,减少了数据恢复时间,并且,仅对更新操作对象对应的操作对象进行状态恢复,可以达到节省系统资源的效果。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据处理方法、一种数据处理装置、一种电子设备和一种计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种数据处理方法,其特征在于,包括:
响应于针对操作对象的更新请求,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作;
在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态;
在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
2.根据权利要求1所述的方法,其特征在于,所述记录所述操作对象在更新之前的改动前状态,包括:
根据所述操作对象的描述信息,获取所述操作对象的业务属性;
在所述业务属性满足业务安全属性条件的情况下,记录所述操作对象在更新之前的改动前状态。
3.根据权利要求1所述的方法,其特征在于,所述预置回滚条件包括时间条件,所述在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态,包括:
在所述更新操作完成时,记录更新完成时间;
依据当前时间和所述更新完成时间,计算得到时间差值;
在所述时间差值满足所述时间条件时,根据所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象对应的状态由所述至少一个改动后状态回滚至所述改动前状态。
4.根据权利要求1所述的方法,其特征在于,所述预置回滚条件包括误操作条件,所述在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态,包括:
根据所述至少一个改动后状态的操作对象,检测与所述操作对象对应的第一业务的业务状态信息;
在依据所述业务状态信息确定所述第一业务出现异常时,判定所述更新操作满足所述误操作条件;
在所述更新操作满足所述误操作条件时,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
5.根据权利要求1所述的方法,其特征在于,在所述对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态之后,还包括:
在所述更新操作满足再执行条件的情况下,对所述操作对象再次执行所述更新操作,将所述操作对象的状态由所述改动前状态更新为所述至少一个改动后状态。
6.根据权利要求1所述的方法,其特征在于,在所述更新操作为多次更新操作时,所述在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态,包括:
在第i次更新操作完成时,记录所述操作对象在第i次更新之后的第一状态;i=1、2、…,所述第一状态为所述至少一个改动后状态中的一个状态;
在第i+1次更新操作完成时,记录所述操作对象在第i+1次更新之后的第二状态;所述第二状态为所述至少一个改动后状态中的一个状态;
所述在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态,包括:
在所述更新操作满足预置回滚条件时,根据所述第二状态和所述第一状态,对所述操作对象执行一次回滚操作,将所述操作对象的状态由所述第二状态回滚至所述第一状态;
对所述操作对象执行至少一次回滚操作,将所述操作对象的状态由所述第一状态回滚至所述改动前状态。
7.根据权利要求1所述的方法,其特征在于,在所述操作对象为多个时,所述在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态,包括:
根据所述至少一个改动后状态的多个所述操作对象,检测与多个所述操作对象对应的第二业务的业务详情信息;
根据所述业务详情信息,从多个所述操作对象中提取出至少一个目标操作对象;所述目标操作对象是指导致所述第二业务出现异常的操作对象;
根据所述改动前状态和所述至少一个改动后状态,对所述至少一个目标操作对象执行回滚操作,将所述至少一个目标操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
8.根据权利要求1所述的方法,其特征在于,所述操作对象包括日志数据、数据库版本中的任一种。
9.一种数据处理装置,其特征在于,包括:
更新操作执行模块,用于响应于针对操作对象的更新请求,记录所述操作对象在更新之前的改动前状态,并对所述操作对象执行更新操作;
改动状态记录模块,用于在所述更新操作完成时,记录所述操作对象在更新之后的至少一个改动后状态;
回滚操作执行模块,用于在所述更新操作满足预置回滚条件时,根据记录的所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
10.根据权利要求9所述的装置,其特征在于,所述更新操作执行模块包括:
业务属性获取子模块,用于根据所述操作对象的描述信息,获取所述操作对象的业务属性;
改动前状态记录子模块,用于在所述业务属性满足业务安全属性条件的情况下,记录所述操作对象在更新之前的改动前状态。
11.根据权利要求9所述的装置,其特征在于,所述预置回滚条件包括时间条件,所述回滚操作执行模块包括:
更新完成时间记录子模块,用于在所述更新操作完成时,记录更新完成时间;
时间差值计算子模块,用于依据当前时间和所述更新完成时间,计算得到时间差值;
第一回滚操作执行子模块,用于在所述时间差值满足所述时间条件时,根据所述改动前状态和所述至少一个改动后状态,对所述操作对象执行回滚操作,将所述操作对象对应的状态由所述至少一个改动后状态回滚至所述改动前状态。
12.根据权利要求9所述的装置,其特征在于,所述预置回滚条件包括误操作条件,所述回滚操作执行模块包括:
业务状态检测子模块,用于根据所述至少一个改动后状态的操作对象,检测与所述操作对象对应的第一业务的业务状态信息;
误操作判定子模块,用于在依据所述业务状态信息确定所述第一业务出现异常时,判定所述更新操作满足所述误操作条件;
第二回滚操作执行子模块,用于在所述更新操作满足所述误操作条件时,将所述操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
13.根据权利要求9所述的装置,其特征在于,还包括:
更新操作再执行模块,用于在所述更新操作满足再执行条件的情况下,对所述操作对象再次执行所述更新操作,将所述操作对象的状态由所述改动前状态更新为所述至少一个改动后状态。
14.根据权利要求9所述的装置,其特征在于,在所述更新操作为多次更新操作时,所述改动状态记录模块包括:
第一状态记录子模块,用于在第i次更新操作完成时,记录所述操作对象在第i次更新之后的第一状态;i=1、2、…,所述第一状态为所述至少一个改动后状态中的一个状态;
第二状态记录子模块,用于在第i+1次更新操作完成时,记录所述操作对象在第i+1次更新之后的第二状态;所述第二状态为所述至少一个改动后状态中的一个状态;
所述回滚操作执行模块包括:
第三回滚操作执行子模块,用于在所述更新操作满足预置回滚条件时,根据所述第二状态和所述第一状态,对所述操作对象执行一次回滚操作,将所述操作对象的状态由所述第二状态回滚至所述第一状态;
第四回滚操作执行子模块,用于对所述操作对象执行至少一次回滚操作,将所述操作对象的状态由所述第一状态回滚至所述改动前状态。
15.根据权利要求9所述的装置,其特征在于,在所述操作对象为多个时,所述回滚操作执行模块包括:
业务详情信息检测子模块,用于根据所述至少一个改动后状态的多个所述操作对象,检测与多个所述操作对象对应的第二业务的业务详情信息;
目标操作对象提取子模块,用于根据所述业务详情信息,从多个所述操作对象中提取出至少一个目标操作对象;所述目标操作对象是指导致所述第二业务出现异常的操作对象;
第五回滚操作执行子模块,用于根据所述改动前状态和所述至少一个改动后状态,对所述至少一个目标操作对象执行回滚操作,将所述至少一个目标操作对象的状态由所述至少一个改动后状态回滚至所述改动前状态。
16.根据权利要求9所述的装置,其特征在于,所述操作对象包括日志数据、数据库版本中的任一种。
17.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的数据处理方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910538704.7A CN110389860A (zh) | 2019-06-20 | 2019-06-20 | 一种数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910538704.7A CN110389860A (zh) | 2019-06-20 | 2019-06-20 | 一种数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110389860A true CN110389860A (zh) | 2019-10-29 |
Family
ID=68285489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910538704.7A Pending CN110389860A (zh) | 2019-06-20 | 2019-06-20 | 一种数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389860A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488256A (zh) * | 2020-04-09 | 2020-08-04 | 网易(杭州)网络有限公司 | 内存监控方法、装置、设备及存储介质 |
CN112783547A (zh) * | 2019-11-01 | 2021-05-11 | 中车株洲电力机车研究所有限公司 | 软件更新的版本回溯方法、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521542A (zh) * | 2011-12-19 | 2012-06-27 | 北京大学 | 一种计算机软件漏洞利用的捕获方法及系统 |
US20140114914A1 (en) * | 2011-12-13 | 2014-04-24 | Huawei Technologies Co., Ltd. | Data configuration method and device, and data configuration rollback method and device |
US20140189335A1 (en) * | 2012-12-27 | 2014-07-03 | General Electric Company | Firmware upgrade error detection and automatic rollback |
CN106599018A (zh) * | 2016-10-20 | 2017-04-26 | 乐视控股(北京)有限公司 | 库存操作方法和系统 |
CN106681760A (zh) * | 2016-12-12 | 2017-05-17 | 国网北京市电力公司 | 基于客户工程项目管理系统的事务处理方法和装置 |
CN107220142A (zh) * | 2016-03-22 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 执行数据恢复操作的方法及装置 |
-
2019
- 2019-06-20 CN CN201910538704.7A patent/CN110389860A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140114914A1 (en) * | 2011-12-13 | 2014-04-24 | Huawei Technologies Co., Ltd. | Data configuration method and device, and data configuration rollback method and device |
CN102521542A (zh) * | 2011-12-19 | 2012-06-27 | 北京大学 | 一种计算机软件漏洞利用的捕获方法及系统 |
US20140189335A1 (en) * | 2012-12-27 | 2014-07-03 | General Electric Company | Firmware upgrade error detection and automatic rollback |
CN107220142A (zh) * | 2016-03-22 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 执行数据恢复操作的方法及装置 |
CN106599018A (zh) * | 2016-10-20 | 2017-04-26 | 乐视控股(北京)有限公司 | 库存操作方法和系统 |
CN106681760A (zh) * | 2016-12-12 | 2017-05-17 | 国网北京市电力公司 | 基于客户工程项目管理系统的事务处理方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783547A (zh) * | 2019-11-01 | 2021-05-11 | 中车株洲电力机车研究所有限公司 | 软件更新的版本回溯方法、计算机设备及存储介质 |
CN111488256A (zh) * | 2020-04-09 | 2020-08-04 | 网易(杭州)网络有限公司 | 内存监控方法、装置、设备及存储介质 |
CN111488256B (zh) * | 2020-04-09 | 2024-04-09 | 网易(杭州)网络有限公司 | 内存监控方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194828B2 (en) | Method and system for implementing a log parser in a log analytics system | |
US11151023B2 (en) | System and method for predicting performance failures in a computer program | |
US7386752B1 (en) | Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery | |
CN110928772A (zh) | 一种测试方法及装置 | |
CN106603281A (zh) | 配置文件管理方法及系统 | |
US20190087179A1 (en) | System and method for predicting defects in a computer program | |
JP5648902B2 (ja) | 仮想サーバのスナップショットを管理する方法、及び該方法を具現化する装置 | |
WO2016161381A1 (en) | Method and system for implementing a log parser in a log analytics system | |
CN110088744A (zh) | 一种数据库维护方法及其系统 | |
CN110389860A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
WO2015014150A1 (en) | Method,apparatus,and application platform for updating application object attribute | |
CN108958991A (zh) | 集群节点故障业务快速恢复方法、装置、设备及存储介质 | |
JP4918668B2 (ja) | 仮想化環境運用支援システム及び仮想化環境運用支援プログラム | |
US11782800B2 (en) | Methods to automatically correct and improve system recovery and replication processes | |
US10083070B2 (en) | Log file reduction according to problem-space network topology | |
CN110083493A (zh) | 一种嵌入式系统故障自恢复方法、终端设备及存储介质 | |
CN110764785B (zh) | 基于开源组件的电力行业云平台工具链及云平台运维方法 | |
CN110928945B (zh) | 一种针对数据库的数据处理方法及装置,数据处理系统 | |
CN110990145A (zh) | 一种分布式系统的后台任务处理机制及方法 | |
CN107632899B (zh) | 一种应用服务器的快照服务方法及装置 | |
CN113268206B (zh) | 一种网络靶场资源热插拔实现方法与系统 | |
US20130013558A1 (en) | Semantic checks for synchronization: imposing ordinality constraints for relationships via learned ordinality | |
CN105765908B (zh) | 一种多站点自动更新方法、客户端和系统 | |
CN115080309A (zh) | 数据备份系统、方法、存储介质以及电子设备 | |
CA2299850C (en) | System and method for the management of computer software maintenance |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191029 |
|
RJ01 | Rejection of invention patent application after publication |