CN103034636A - 一种非关系型数据库的回滚方法、装置及系统 - Google Patents

一种非关系型数据库的回滚方法、装置及系统 Download PDF

Info

Publication number
CN103034636A
CN103034636A CN2011102952000A CN201110295200A CN103034636A CN 103034636 A CN103034636 A CN 103034636A CN 2011102952000 A CN2011102952000 A CN 2011102952000A CN 201110295200 A CN201110295200 A CN 201110295200A CN 103034636 A CN103034636 A CN 103034636A
Authority
CN
China
Prior art keywords
relational database
daily record
database
described non
data
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
CN2011102952000A
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.)
Shanghai Shangda Networking Development Co., Ltd.
Original Assignee
Shengle Information Technolpogy Shanghai 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 Shengle Information Technolpogy Shanghai Co Ltd filed Critical Shengle Information Technolpogy Shanghai Co Ltd
Priority to CN2011102952000A priority Critical patent/CN103034636A/zh
Publication of CN103034636A publication Critical patent/CN103034636A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种非关系型数据库的回滚方法、装置及系统,所述方法包括:判断所述非关系型数据库是否无法进行操作,如果是,则将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据,所述镜像数据是指当前时间周期以前所述非关系型数据库中数据的备份;按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。采用本发明实施例公开的方法、装置及系统,可以使所述镜像数据库中的镜像数据替换当前所述非关系型数据库中的原始数据,然后在正确的所述镜像数据上按照所述准确日志的内容进行修改,从而实现了所述非关系型数据库的回滚功能。

Description

一种非关系型数据库的回滚方法、装置及系统
技术领域
本发明涉及数据库领域,更具体的说,是涉及一种非关系型数据库的回滚方法、装置及系统。
背景技术
随着互联网web2.0网站的兴起,超大规模和高并发类型的web2.0纯动态网站已经暴露了很多难以克服的问题,因此,许多公司已经将Web2.0中的MySQL开源数据库改为非关系型数据库,而非关系型数据库则由于其本身的特点得到了非常迅速的发展。
非关系型数据库泛指不同于关系型数据库的一类数据库,在此类数据库中存储的数据没有固定的模式,并且非关系型数据库具有很强的可扩展性。
但是非关系型数据没有提供回滚功能,当对数据库进行修复时,恢复时间会很长。回滚泛指程序更新失败,返回上一次的正确行为,例如当应用程序、数据库或系统错误后还原数据库的完整性时,会用到回滚。
因此,如何对非关系型数据库进行回滚,成为现有技术中需要解决的技术问题。
发明内容
有鉴于此,本发明提供了一种非关系型数据库的回滚方法、装置及系统,以克服现有技术中由于非关系型数据没有提供回滚功能的问题。
为实现上述目的,本发明提供如下技术方案:
一种非关系型数据库的回滚方法,包括:
判断所述非关系型数据库是否无法进行操作,如果是,则将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据,所述镜像数据是指当前时间周期以前所述非关系型数据库中数据的备份,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
优选的,所述准确日志的获取步骤为:
判断是否满足所述非关系型数据库中日志的预设抽取条件,如果是,则从所述非关系型数据库中抽取当前时间至最近一次的抽取时刻内产生的新日志;
判断所述新日志中是否包括使数据库无法进行操作的日志,如果是,则从所述新日志中抽取出使数据库无法进行操作之前的准确日志。
优选的,所述准确日志的获取步骤包括:
判断是否满足所述非关系型数据库中日志的预设抽取条件,如果是,则从所述非关系型数据库中抽取当前时间至最近一次从所述非关系型数据库中抽取日志时间内产生的新日志;
将进行等幂变换后的新日志存入所述日志数据库中;
相应的,在所述步骤A后,还包括:
判断所述日志数据库中是否包括使所述非关系型数据库无法进行操作的日志,如果是,则从所述日志数据库中抽取当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志。
优选的,所述预设抽取条件为:所述非关系型数据库抽取所述新日志的时间周期或所述非关系型数据库中新日志的存储量。
优选的,在所述新日志存入所述日志数据库之前还包括:
过滤所述新日志中重复和使所述非关系型数据库中的数据不发生变化的日志。
优选的,还包括:
当下一个时间周期到来时,将所述非关系型数据库中的数据替换所述镜像数据库中的数据。
一种非关系型数据库的回滚装置,所述装置包括:
判断模块,用于判断所述非关系型数据库是否无法进行操作,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
数据替换模块,用于在所述判断模块的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据,所述镜像数据是指当前时间周期以前的所述非关系型数据库中数据的备份;
日志修改模块,用于按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
优选的,还包括:
判断抽取模块,用于判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件;
第一抽取模块,用于当所述判断抽取模块的结果为是的情况下,抽取所述非关系型数据库中当前时间至最近一次的抽取时刻内产生的新日志;
判断日志模块,用于判断所述新日志中是否包含使数据库无法进行操作的日志;
第二抽取模块,用于当所述判断日志模块的结果为是的情况下,抽取所述新日志中使数据库无法进行操作之前的准确日志;
日志变换模块,用于将所述准确日志进行等幂变换,并将进行等幂变换后的所述准确日志存入所述日志数据库。
优选的,还包括:
判断抽取模块,用于判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件;
第一抽取模块,用于当所述判断抽取模块结果为是的情况下,从所述非关系型数据库中抽取当前时间至最近一次从所述非关系型数据库中抽取日志时间内产生的新日志;
日志变换模块,用于将进行等幂变换后的新日志存入所述日志数据库中;
判断日志模块,用于判断所述日志数据库中是否包含使所述非关系型数据库无法进行操作的日志;
第二抽取模块,用于当所述判断日志模块的结果为是的情况下,从所述日志数据库中抽取当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志。
优选的,所述日志变换模块还包括:日志过滤模块,所述日志过滤模块用于过滤所述非关系型数据库中所述本周期内重复和使所述非关系型数据库中的数据不发生变化的日志。
优选的,还包括:更新模块,用于当下一个时间周期到来时,将所述非关系型数据库中的数据替换所述镜像数据库的数据。
一种非关系型数据库的回滚系统,所述系统包括:
日志数据库,用于存储与所述非关系型数据库中当前时间周期的原始日志对应的需要重放的周期日志;
镜像数据库,用于存储所述非关系型数据库中当前时间周期以前数据的备份;
回滚装置,所述回滚装置包括:
判断模块,用于判断所述非关系型数据库是否无法进行操作,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
数据替换模块,用于当所述判断模块的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据;
日志修改模块,用于按照所述日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
经由上述的技术方案可知,采用本发明的实施例,首先,当所述非关系型数据库不能进行操作时,先将所述镜像数据库中当前时间周期之前的正确的数据替换掉所述非关系型数据库中的原始数据,然后再根据所述日志数据库中当前时间周期内首次使所述非关系型数据库不能操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改,因为是在正确的数据上按照所述准确日志的内容进行修改,从而使所述非关系型数据库中的数据恢复到无法进行操作之前的数据,从而实现了所述非关系型数据库的回滚功能;其次,因为过滤了当前时间周期内首次使所述非关系型数据库无法进行操作之前准确日志中重复和使所述非关系型数据库中的数据不发生变化的日志,这样过滤后的所述准确日志相对没有过滤的准确日志的内容较少,当所述非关系型数据库按照所述准确日志的内容进行回滚时,所用的时间就会缩短,从而达到了快速回滚的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明公开的第一种非关系型数据库的回滚方法实施例流程图;
图2为本发明中所述非关系型数据库进行回滚的关系示意图;
图3为本发明公开的第二种非关系型数据库的回滚方法实施例流程图;
图4为本发明公开的第三种非关系型数据库的回滚方法实施例流程图;
图5为本发明公开的第一种非关系型数据库的回滚装置实施例的结构图;
图6为本发明公开的第二种非关系型数据库的回滚装置实施例的结构图;
图7为本发明公开的第三种非关系型数据库的回滚装置的结构图;
图8为本发明公开的一种非关系型数据库的回滚系统的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图1,为本发明公开的第一种非关系型数据库的回滚方法实施例的流程图,该方法可以包括:
步骤S101:判断所述非关系型数据库是否无法进行操作,如果是,则进入步骤S102,如果否,则不作处理。
在实际应用中,会有很多导致非关系型数据库无法进行操作的情况,例如自然灾害、系统硬件问题、数据被黑客恶意修改、电脑宕机等比较严重的情况,这种情况下,就需要对所述非关系型数据库进行回滚。本步骤中所述的无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏。
在步骤S101中“如果否,则不作处理”是为了在画图时方便,并不一定不作处理,可以为其他情况,例如:再次判断所述非关系型数据库是否无法进行操作。
步骤S102:将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据。
具体的可以复制所述镜像数据库中的数据,并将所述复制的镜像数据替换至所述非关系型数据库中。
所述镜像数据库的作用是存储所述非关系型数据库中的数据,即作为所述非关系型数据库的一个数据备份,镜像数据库可以存储当前所述非关系型数据库中的数据或N(可以根据具体应用而设定,由于N的选择不影响本实施例的实现,故不作多余赘述。)天以前所述非关系型数据库中的数据,具体应根据所述镜像数据库的应用,例如:若所述镜像数据库应用在互联网中,所述镜像数据库应动态及时更新,以便当非关系型数据库出现故障时,及时用所述镜像数据库来替换所述非关系型数据库。
所述镜像数据是指当前时间周期以前的所述非关系型数据库中数据的备份,其中所述时间周期大小可以与存储资源的大小和/或,数据库恢复的速度成正比,例如存储资源越大的时候,时间周期可以越长;数据库回复速度越快,时间周期越长。
步骤S103:按照所述日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
具体的可以由用户判断当前时间周期内哪个时间内的日志使数据库无法进行操作,当然也可以采用具有此功能的软件或硬件实现本次判断步骤,例如编程实现或采用处理器实现等。
所述日志数据库用于存储与所述非关系型数据库中的当前时间周期的原始日志对应的需要重放的有效日志;所述日志数据库的存储容量可以根据需要而设定,一般的日志数据库中日志存储量大于所述非关系型数据库中存储的日志量。
在本实施例中,在所述非关系型数据库不能进行操作的情况下,先将所述镜像数据库中当前时间周期之前的正确的数据替换掉所述非关系型数据库中的数据,然后再根据所述日志数据库中当前时间周期内首次使所述非关系型数据库不能操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改,因为是在正确的数据上按照所述准确日志的内容进行修改,从而使所述非关系型数据库中的数据恢复到无法进行操作之前的数据,从而实现了所述非关系型数据库的回滚功能。
为了使本领域技术人员更加清楚的理解本实施例,下面再以一个实例来说明所述非关系型数据库进行回滚的过程。请参阅附图2,图2为本发明中所述非关系型数据库进行回滚的关系示意图。
图2中所述镜像数据库中存储的是N天前所述非关系型数据库中数据的备份,当前非关系型数据库中存储的是当前的数据,还包括有这N天的日志,当发现在这N天中第m天对所述非关系型数据库中数据的操作首次使该非关系型数据库出现异常即无法进行操作,则先将所述镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据,在按照N-m天日志的内容对所述非关系型数据库中镜像数据进行操作,也就是使所述非关系型数据库中的镜像数据恢复到m天前地数据;其中,N可以与存储资源的大小和/或,数据库恢复的速度成正比,例如存储资源越大的时候,N可以越大;数据库回复速度越快,N可以越大。m是指N天中首次使所述非关系型数据库无法进行操作时间即m小于或等于N,N或m可以是任意正数。
请参阅附图3,为本发明公开的第二种非关系型数据库的回滚方法实施例的流程图,该方法可以包括:
步骤S301:判断是否满足所述非关系型数据库中日志的预设抽取条件,如果是,进入步骤S302,如果否,则不作处理。
所述预设抽取条件可以是所述非关系型数据库抽取所述新日志的时间周期或对所述非关系型数据库进行操作的频繁度,所述非关系型数据库抽取所述新日志的时间周期通常是1天,当然也可以是2天或3天,所述非关系型数据库抽取所述新日志的时间周期的长短不影响本发明的实现,所以在本发明实施例中就不对所述非关系型数据库抽取所述新日志的时间周期作特殊限定。对所述非关系型数据库进行操作的频繁度是指,当在某个时间段内对所述非关系型数据库中数据操作次数多余平时,或某时间段内的数据非常重要时,抽取所述非关系型数据库中新产生的新日志的次数就频繁。
在步骤S301中“如果否,则不作处理”是为了在画图时方便,并不一定不作处理,可以为其他情况,例如:如果否,则再次判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件。
步骤S302:从所述非关系型数据库中抽取当前时间至最近一次的抽取时刻内产生的新日志,并判断所述新日志中是否包括使所述非关系型数据库无法进行操作的日志,如果是,进入步骤S303,如果否,进入步骤S304。
步骤S303:从所述新日志中抽取出首次使所述非关系型数据库无法进行操作之前的准确日志。
如果所述新日志中不包括使所述非关系型数据库无法进行操作的日志,则新日志就是准确日志。
步骤S304:对所述准确日志进行等幂变换,并将变换后的准确日志存入所述日志数据库中。
进行等幂变换的原因是:在所述非关系型数据库无法进行操作后,可能进行多次回滚,进行等幂变换后,即使将日志进行多次回滚,只要顺序正确,那么所述非关系型数据库中的数据依然是正确的。
之所以先从所述新日志中抽取出所述准确日志,在将进行等幂变换之后的准确日志存入所述日志数据库中,因为,在此抽取准确日志的过程中,可能去掉了一些使所述非关系型数据库无法进行操作的日志,可以降低对所述日志数据库存储量的要求。
步骤S304还可以包括,过滤所述准确日志中重复日志和使所述非关系型数据库中的数据不发生变化的日志。
因为过滤了当前时间周期内首次使所述非关系型数据库无法进行操作之前准确日志中重复和使所述非关系型数据库中的数据不发生变化的日志,这样过滤后的所述准确日志相对没有过滤的准确日志的容量较小,当所述非关系型数据库按照所述准确日志的内容进行回滚时,所用的时间就会缩短,从而达到了快速回滚的效果。
其中所述重复日志是指对所述非关系型数据库中的数据进行的相同操作的记录,比如:对所述非关系型数据库中的某个使用人员进行授权的命令执行了两次。前面叙述的使所述非关系型数据库中的数据不发生变化的日志可以为查询等操作的记录。
步骤S305:当下一个时间周期到来时对所述镜像数据库中的数据进行更新。
本步骤的目的即是将所述非关系型数据库中的数据替换所述镜像数据库中的数据。所述镜像数据存储的是当前时间周期以前的所述非关系型数据库中数据的备份。
在实际应用中,依据不同的需求或者场景,步骤S301也可以在步骤S305之后执行,也可以同时执行,在本实施例中只是为了画图方便才规定了上述顺序实现的步骤。
步骤S306:判断所述非关系型数据库是否无法进行操作,如果是,则进入步骤S307;如果否,则不作处理。步骤S307:将所述镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据。
步骤S308:按照所述日志数据库中当前时间周期内准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
因为经过步骤S303与步骤S304之后,所述日志数据库中的日志已经是不包含使所述非关系型数据库无法进行操作的日志,而所述日志数据库中可能包含了大于所述时间周期的日志量,故是按照所述日志数据库中当前时间周期内准确日志的内容对所述非关系型数据库中的镜像数据进行修改。
本实施例中因为所述镜像数据库中的镜像数据一直在进行更新,使所述镜像数据库中的数据始终是当前时间周期之前所述非关系型数据库中数据的备份,这样当所述非关系型数据库无法进行操作时,将所述镜像数据库中的数据替换所述非关系型数据库中的原始数据后,当前所述非关系型数据库中的镜像数据就是当前时间周期之前的所述非关系型数据库中准确数据;因为所述日志数据库中所存储的日志就是不包括使所述非关系型数据库无法进行操作的日志,在按照所述日志数据库中的当前时间周期日志的内容对所述非关系型数据库中的镜像数据进行修改,就实现了所述非关系型数据库的回滚过程。
请参阅附图4,为本发明公开的第三种非关系型数据库的回滚方法实施例的流程图,该方法可以包括:
步骤S401:判断是否满足所述非关系型数据库中日志的预设抽取条件,如果是,进入步骤S402。
步骤S402:从所述非关系型数据库中抽取当前时间至最近一次的抽取时刻内产生的新日志,并将进行等幂变换后的新日志存入所述日志数据库中。
因为所述日志数据库的存储量可以根据需要而设定,故在实际需要中,依据不同的需求或场景,也可以将所述新日志直接进行等幂变换,并将进行等幂变换后的所述新日志存储到所述日志数据库中。
步骤S403:当下一个时间周期到来时,对所述镜像数据库中的数据进行更新即将所述非关系型数据库中的数据替换所述镜像数据库中的数据。
步骤S404:判断所述非关系型数据库是否无法进行操作,如果是,则进入步骤S405。
步骤S405:将所述镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据。
步骤S406:判断所述日志数据库中是否包括使所述非关系型数据库无法进行操作的日志,如果是,则进入步骤S407,如果否,则进入步骤S408。
因为步骤S402中是直接将进行等幂变换之后的所述新日志存入到所述日志数据库中,即日志数据库中的日志很有可能包括使所述非关系型数据库无法进行操作的日志,所以可以先对所述日志数据库中的日志进行是否无法操作的判断。
如果所述日志数据库中的日志不包括使所述非关系型数据库无法进行操作的日志,则所述日志数据库中的周期日志为准确日志。
步骤S407:从所述日志数据库中抽取当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志。
步骤S408:按照所述准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
因为步骤S407已经确保了所述准确日志就是当前时间周期内首次使所述非关系型数据库无法进行操作之前的日志,所以直接按照所述准确日志对所述非关系型数据库中的镜像数据进行修改,这样进行修改后的镜像数据就是客观而准确的。
本实施例因为所述镜像数据库中的镜像数据一直在进行更新,使所述镜像数据库中的数据始终是当前时间周期之前所述非关系型数据库中数据的备份,这样当所述非关系型数据库无法进行操作时,将所述镜像数据库中的数据替换所述非关系型数据库中的原始数据后,当前所述非关系型数据库中的镜像数据就是当前时间周期之前的所述非关系型数据库中准确数据;因为所述日志数据库中的日志很可能会有使所述非关系型数据库无法进行操作的日志,所以对所述日志数据库中的日志进行判断,并从中抽取出当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志,在按照所述准确日志的内容对所述非关系型数据库的镜像数据进行修改,从而实现了所述非关系型数据库的回滚过程。
参见图5所示,图5为本发明公开的第一种非关系型数据库的回滚装置实施例的结构图,该装置可以包括:判断模块501、数据替换模块502和日志修改模块503,其中:
判断模块501,用于判断所述非关系型数据库是否无法进行操作;
数据替换模块502,用于在所述判断模块501的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据;
所述镜像数据是指当前时间周期以前的所述非关系型数据库中数据的备份;
日志修改模块503,用于按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
在本实施例中,在当判断模块501结果为是的情况下,调用数据替换模块502将所述镜像数据库中当前时间周期之前的正确的数据替换掉所述非关系型数据库中的数据,然后再调用日志修改模块503根据所述日志数据库中当前时间周期内首次使所述非关系型数据库不能操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改,因为是在正确的数据上按照所述准确日志的内容进行修改,从而使所述非关系型数据库中的数据恢复到无法进行操作之前的数据,从而实现了所述非关系型数据库的回滚功能。
请参阅图6所示,图6为本发明公开的第二种非关系型数据库的回滚装置实施例的结构图,可以包括:判断抽取模块601、第一抽取模块602、判断日志模块603、第二抽取模块604、日志变换模块605,更新模块606、判断模块607、数据替换模块608以及日志修改模块609,其中:
判断抽取模块601,用于判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件;
第一抽取模块602,用于当所述判断抽取模块601的结果为是的情况下,抽取所述非关系型数据库中当前时间至最近一次从所述非关系型数据库中抽取日志时间内产生的新日志;
判断日志模块603,用于判断所述新日志中是否包含使数据库无法进行操作的日志;
第二抽取模块604,用于当所述判断日志模块603的结果为是的情况下,抽取所述新日志中使数据库无法进行操作之前的准确日志;
如果所述新日志中不包括使所述非关系型数据库无法进行操作的日志,则新日志就是准确日志。
日志变换模块605,用于将所述准确日志进行等幂变换,并将进行等幂变换后的所述准确日志存入所述日志数据库。
其中,所述日志变换模块605还可以包括:日志过滤模块,用于过滤所述准确日志中重复日志和使所述非关系型数据库中的数据不发生变化的日志。
更新模块606,用于当下一个时间周期到来时,将所述非关系型数据库中的数据替换所述镜像数据库的数据。
在实际应用中,依据不同的需求或者场景,判断抽取模块601也可以在更新模块606之后执行,也可以同时执行,在本实施例中只是为了画图方便才规定了上述顺序实现的步骤。
判断模块607,用于判断所述非关系型数据库是否无法进行操作;
数据替换模块608,用于在所述判断模块607的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据;
日志修改模块609,用于按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
本实施例中因为更新模块606使所述镜像数据库中的数据始终是当前时间周期之前所述非关系型数据库中数据的备份,这样当判断模块607的结果为是的情况下,调用数据替换模块608将所述镜像数据库中的数据替换所述非关系型数据库中的原始数据,那么当前所述非关系型数据库中的镜像数据就是当前时间周期之前的所述非关系型数据库中准确数据;因为在调用第二抽取模块604之后,所述日志数据库中所存储的日志就是不包括使所述非关系型数据库无法进行操作的日志,在通过日志修改模块609对所述非关系型数据库中的镜像数据进行修改,就实现了所述非关系型数据库的回滚功能。
请参阅图7所示,图7为本发明公开的第三种非关系型数据库的回滚装置的结构图,该装置可以包括:判断抽取模块601、第一抽取模块602、日志变换模块701、更新模块606、判断模块607、数据替换模块608、判断日志模块702、第二抽取模块703以及日志修改模块704,其中:
判断抽取模块601,用于判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件;
第一抽取模块602,用于当所述判断抽取模块601结果为是的情况下,从所述非关系型数据库中抽取当前时间至最近一次从所述非关系型数据库中抽取日志时间内产生的新日志;
日志变换模块701,用于将进行等幂变换后的新日志存入所述日志数据库中;
所述日志变换模块701还可以包括:日志过滤模块,所述日志过滤模块用于过滤所述非关系型数据库中所述本周期内重复和使所述非关系型数据库中的数据不发生变化的日志。
更新模块606,用于当下一个时间周期到来时,将所述非关系型数据库中的数据替换所述镜像数据库的数据。
判断模块607,用于判断所述非关系型数据库是否无法进行操作;
数据替换模块608,用于在所述判断模块705的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据;
判断日志模块702,用于判断所述日志数据库中是否包含使所述非关系型数据库无法进行操作的日志;
第二抽取模块703,用于当所述判断日志模块702的结果为是的情况下,从所述日志数据库中抽取当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志。
日志修改模块609,用于按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
本实施例因为更新模块606使所述镜像数据库中的数据始终是当前时间周期之前所述非关系型数据库中数据的备份,这样当判断模块607的结果为是的情况下,将所述镜像数据库中的数据替换所述非关系型数据库中的原始数据,那么当前所述非关系型数据库中的镜像数据就是当前时间周期之前的所述非关系型数据库中准确数据;因为经过第一抽取模块602与日志变换模块701之后的日志很可能会包括使所述非关系型数据库无法进行操作的日志,所以要调用判断日志模块702对所述日志数据库中的日志进行判断,并在判断日志模块702结果为是的情况下,调用第二抽取模块703从中抽取出当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志,在通过日志修改模块609按照所述准确日志的内容对所述非关系型数据库的镜像数据进行修改,从而实现了所述非关系型数据库的回滚功能。
参见图8所示,图8为本发明公开的一种非关系型数据库的回滚系统的结构图,该系统可以包括:日志数据库801、镜像数据库802、回滚装置803,回滚装置803中还可以包括:判断模块8031、数据替换模块8032以及日志修改模块8033,其中:
日志数据库801,用于存储与所述非关系型数据库中当前时间周期的原始日志对应的需要重放的周期日志;
镜像数据库802,用于存储所述非关系型数据库中当前时间周期以前数据的备份;
回滚装置803,所述回滚装置可以包括:
判断模块8031,用于判断所述非关系型数据库是否无法进行操作;
数据替换模块8032,用于当所述判断模块的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据;
日志修改模块8033,用于按照所述日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
本实施例中,在回滚装置803中判断模块8031结果为是的情况下,调用回滚装置803中数据替换模块8032将所述镜像数据库802中当前时间周期之前的正确的数据替换掉所述非关系型数据库中的数据,然后再调用回滚装置803中日志修改模块8033根据所述日志数据库801中当前时间周期内首次使所述非关系型数据库不能操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改,因为是在正确的数据上按照所述准确日志的内容进行修改,从而使所述非关系型数据库中的数据恢复到无法进行操作之前的数据,从而实现了所述非关系型数据库的回滚功能。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置或系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的一种非关系型数据库的回滚方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明实施例的方法及其思想;同时,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种非关系型数据库的回滚方法,其特征在于,包括步骤:
判断所述非关系型数据库是否无法进行操作,如果是,则将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据,所述镜像数据是指当前时间周期以前所述非关系型数据库中数据的备份,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
2.根据权利要求1所述的方法,其特征在于,所述准确日志的获取步骤为:
判断是否满足所述非关系型数据库中日志的预设抽取条件,如果是,则从所述非关系型数据库中抽取当前时间至最近一次的抽取时刻内产生的新日志;
判断所述新日志中是否包括使数据库无法进行操作的日志,如果是,则从所述新日志中抽取出使数据库无法进行操作之前的准确日志。
3.根据权利要求1所述的方法,其特征在于,所述准确日志的获取步骤包括:
判断是否满足所述非关系型数据库中日志的预设抽取条件,如果是,则从所述非关系型数据库中抽取当前时间至最近一次从所述非关系型数据库中抽取日志时间内产生的新日志;
将进行等幂变换后的新日志存入所述日志数据库中;
相应的,在所述步骤A后,还包括:
判断所述日志数据库中是否包括使所述非关系型数据库无法进行操作的日志,如果是,则从所述日志数据库中抽取当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志。
4.根据权利要求2或3所述的方法,其特征在于,所述预设抽取条件为:所述非关系型数据库抽取所述新日志的时间周期或所述非关系型数据库中新日志的存储量。
5.根据权利要求3所述方法,其特征在于,在所述新日志存入所述日志数据库之前还包括:
过滤所述新日志中重复和使所述非关系型数据库中的数据不发生变化的日志。
6.根据权利要求1所述的方法,其特征在于,还包括:
当下一个时间周期到来时,将所述非关系型数据库中的数据替换所述镜像数据库中的数据。
7.一种非关系型数据库的回滚装置,其特征在于,所述装置包括:
判断模块,用于判断所述非关系型数据库是否无法进行操作,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
数据替换模块,用于在所述判断模块的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据,所述镜像数据是指当前时间周期以前的所述非关系型数据库中数据的备份;
日志修改模块,用于按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
8.根据权利要求7述的回滚装置,其特征在于,还包括:
判断抽取模块,用于判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件;
第一抽取模块,用于当所述判断抽取模块的结果为是的情况下,抽取所述非关系型数据库中当前时间至最近一次的抽取时刻内产生的新日志;
判断日志模块,用于判断所述新日志中是否包含使数据库无法进行操作的日志;
第二抽取模块,用于当所述判断日志模块的结果为是的情况下,抽取所述新日志中使数据库无法进行操作之前的准确日志;
日志变换模块,用于将所述准确日志进行等幂变换,并将进行等幂变换后的所述准确日志存入所述日志数据库。
9.根据权利要求7所述的回滚装置,其特征在于,还包括:
判断抽取模块,用于判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件;
第一抽取模块,用于当所述判断抽取模块结果为是的情况下,从所述非关系型数据库中抽取当前时间至最近一次从所述非关系型数据库中抽取日志时间内产生的新日志;
日志变换模块,用于将进行等幂变换后的新日志存入所述日志数据库中;
判断日志模块,用于判断所述日志数据库中是否包含使所述非关系型数据库无法进行操作的日志;
第二抽取模块,用于当所述判断日志模块的结果为是的情况下,从所述日志数据库中抽取当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志。
10.根据权利要求8或9所述的回滚装置,其特征在于,所述日志变换模块还包括:日志过滤模块,所述日志过滤模块用于过滤所述非关系型数据库中所述本周期内重复和使所述非关系型数据库中的数据不发生变化的日志。
11.根据权利要求7所述的回滚装置,其特征在于,还包括:更新模块,用于当下一个时间周期到来时,将所述非关系型数据库中的数据替换所述镜像数据库的数据。
12.一种非关系型数据库的回滚系统,其特征在于,所述系统包括:
日志数据库,用于存储与所述非关系型数据库中当前时间周期的原始日志对应的需要重放的周期日志;
镜像数据库,用于存储所述非关系型数据库中当前时间周期以前数据的备份;
回滚装置,所述回滚装置包括:
判断模块,用于判断所述非关系型数据库是否无法进行操作,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
数据替换模块,用于当所述判断模块的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据;
日志修改模块,用于按照所述日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
CN2011102952000A 2011-09-29 2011-09-29 一种非关系型数据库的回滚方法、装置及系统 Pending CN103034636A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011102952000A CN103034636A (zh) 2011-09-29 2011-09-29 一种非关系型数据库的回滚方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011102952000A CN103034636A (zh) 2011-09-29 2011-09-29 一种非关系型数据库的回滚方法、装置及系统

Publications (1)

Publication Number Publication Date
CN103034636A true CN103034636A (zh) 2013-04-10

Family

ID=48021539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011102952000A Pending CN103034636A (zh) 2011-09-29 2011-09-29 一种非关系型数据库的回滚方法、装置及系统

Country Status (1)

Country Link
CN (1) CN103034636A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572748A (zh) * 2013-10-24 2015-04-29 贵州广思信息网络有限公司 提高前端数据吞吐平台访问速度的方法
CN105808787A (zh) * 2016-04-01 2016-07-27 广州唯品会网络技术有限公司 一种数据处理方法和电子设备
WO2017162032A1 (zh) * 2016-03-22 2017-09-28 阿里巴巴集团控股有限公司 执行数据恢复操作的方法及装置
CN107784055A (zh) * 2017-02-17 2018-03-09 平安科技(深圳)有限公司 基于非关系型数据库的事务处理方法和装置
CN110119426A (zh) * 2019-03-27 2019-08-13 携程计算机技术(上海)有限公司 酒店订单报表数据同步的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1317742A (zh) * 2000-04-10 2001-10-17 国际商业机器公司 恢复数据库时并行读取主从备份的系统和方法
CN1421010A (zh) * 1999-07-07 2003-05-28 联合想象计算机公司 数据库表格恢复系统
US20040267835A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Database data recovery system and method
US20050216462A1 (en) * 2004-03-29 2005-09-29 Microsoft Corporation System and method for a snapshot query during database recovery
CN1858745A (zh) * 2006-04-05 2006-11-08 华为技术有限公司 实现内存数据和数据库数据事务一致性的处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1421010A (zh) * 1999-07-07 2003-05-28 联合想象计算机公司 数据库表格恢复系统
CN1317742A (zh) * 2000-04-10 2001-10-17 国际商业机器公司 恢复数据库时并行读取主从备份的系统和方法
US20040267835A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Database data recovery system and method
US20050216462A1 (en) * 2004-03-29 2005-09-29 Microsoft Corporation System and method for a snapshot query during database recovery
CN1858745A (zh) * 2006-04-05 2006-11-08 华为技术有限公司 实现内存数据和数据库数据事务一致性的处理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572748A (zh) * 2013-10-24 2015-04-29 贵州广思信息网络有限公司 提高前端数据吞吐平台访问速度的方法
WO2017162032A1 (zh) * 2016-03-22 2017-09-28 阿里巴巴集团控股有限公司 执行数据恢复操作的方法及装置
TWI740901B (zh) * 2016-03-22 2021-10-01 香港商阿里巴巴集團服務有限公司 執行資料恢復操作的方法及裝置
CN105808787A (zh) * 2016-04-01 2016-07-27 广州唯品会网络技术有限公司 一种数据处理方法和电子设备
CN105808787B (zh) * 2016-04-01 2019-10-11 广州品唯软件有限公司 一种数据处理方法和电子设备
CN107784055A (zh) * 2017-02-17 2018-03-09 平安科技(深圳)有限公司 基于非关系型数据库的事务处理方法和装置
CN110119426A (zh) * 2019-03-27 2019-08-13 携程计算机技术(上海)有限公司 酒店订单报表数据同步的方法及系统

Similar Documents

Publication Publication Date Title
CN102981931B (zh) 虚拟机备份方法及装置
CN106445738B (zh) 一种数据库备份方法及装置
CN108376109A (zh) 卷和快照复制
US10936435B2 (en) Automatically setting a dynamic backup policy in a cloud environment
CN103034636A (zh) 一种非关系型数据库的回滚方法、装置及系统
KR100983572B1 (ko) 패치 적용 방법 및 패치 적용 프로그램을 기록한 기록 매체
CN105550229A (zh) 分布式存储系统数据修复的方法和装置
CN103473277A (zh) 文件系统的快照方法和装置
US10146633B2 (en) Data recovery from multiple data backup technologies
CN105224422B (zh) 一种数据备份方法及设备
CN103093038A (zh) 一种物料清单的更新方法及装置
EP3474143B1 (en) Method and apparatus for incremental recovery of data
CN105320578A (zh) 一种备份和恢复app的方法及装置
CN104809025A (zh) 一种项目上线方法及装置
CN104735107A (zh) 分布式存储系统中数据副本恢复方法及装置
CN105955843A (zh) 一种用于数据库恢复的方法与设备
CN103577546A (zh) 一种数据备份的方法、设备及分布式集群文件系统
US20150242282A1 (en) Mechanism to update software packages
CN104216802A (zh) 一种内存数据库恢复方法和设备
CN104317963A (zh) 一种数据处理方法及装置
CN102902770A (zh) 一种镜像文件拼装方法及系统
CN105005491A (zh) 一种Linux内核和应用程序的升级方法及系统
CN106557383B (zh) 一种数据恢复的方法及装置
CN102710433A (zh) 一种在线升级处理方法、相关装置和系统
CN110795282A (zh) 一种数据回滚方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: SHENGDA NETWORK DEVELOPMENT CO., LTD., SHANGHAI

Free format text: FORMER OWNER: SHENGYUE INFORMATION TECHNOLOGY (SHANGHAI) CO., LTD.

Effective date: 20140529

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 201203 PUDONG NEW AREA, SHANGHAI TO: 201213 PUDONG NEW AREA, SHANGHAI

TA01 Transfer of patent application right

Effective date of registration: 20140529

Address after: 201213 402-B room, No. 727 Zhangjiang Road, Shanghai, Pudong New Area

Applicant after: Shanghai Shangda Networking Development Co., Ltd.

Address before: 201203 Shanghai Guo Shou Jing Road, Zhangjiang High Tech Park of Pudong New Area No. 356 building 3 Room 201

Applicant before: Shengle Information Technology (Shanghai) Co., Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20130410

RJ01 Rejection of invention patent application after publication