发明内容
有鉴于此,本发明提供了一种非关系型数据库的回滚方法、装置及系统,以克服现有技术中由于非关系型数据没有提供回滚功能的问题。
为实现上述目的,本发明提供如下技术方案:
一种非关系型数据库的回滚方法,包括:
判断所述非关系型数据库是否无法进行操作,如果是,则将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据,所述镜像数据是指当前时间周期以前所述非关系型数据库中数据的备份,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
优选的,所述准确日志的获取步骤为:
判断是否满足所述非关系型数据库中日志的预设抽取条件,如果是,则从所述非关系型数据库中抽取当前时间至最近一次的抽取时刻内产生的新日志;
判断所述新日志中是否包括使数据库无法进行操作的日志,如果是,则从所述新日志中抽取出使数据库无法进行操作之前的准确日志。
优选的,所述准确日志的获取步骤包括:
判断是否满足所述非关系型数据库中日志的预设抽取条件,如果是,则从所述非关系型数据库中抽取当前时间至最近一次从所述非关系型数据库中抽取日志时间内产生的新日志;
将进行等幂变换后的新日志存入所述日志数据库中;
相应的,在所述步骤A后,还包括:
判断所述日志数据库中是否包括使所述非关系型数据库无法进行操作的日志,如果是,则从所述日志数据库中抽取当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志。
优选的,所述预设抽取条件为:所述非关系型数据库抽取所述新日志的时间周期或所述非关系型数据库中新日志的存储量。
优选的,在所述新日志存入所述日志数据库之前还包括:
过滤所述新日志中重复和使所述非关系型数据库中的数据不发生变化的日志。
优选的,还包括:
当下一个时间周期到来时,将所述非关系型数据库中的数据替换所述镜像数据库中的数据。
一种非关系型数据库的回滚装置,所述装置包括:
判断模块,用于判断所述非关系型数据库是否无法进行操作,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
数据替换模块,用于在所述判断模块的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据,所述镜像数据是指当前时间周期以前的所述非关系型数据库中数据的备份;
日志修改模块,用于按照日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
优选的,还包括:
判断抽取模块,用于判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件;
第一抽取模块,用于当所述判断抽取模块的结果为是的情况下,抽取所述非关系型数据库中当前时间至最近一次的抽取时刻内产生的新日志;
判断日志模块,用于判断所述新日志中是否包含使数据库无法进行操作的日志;
第二抽取模块,用于当所述判断日志模块的结果为是的情况下,抽取所述新日志中使数据库无法进行操作之前的准确日志;
日志变换模块,用于将所述准确日志进行等幂变换,并将进行等幂变换后的所述准确日志存入所述日志数据库。
优选的,还包括:
判断抽取模块,用于判断当前情况是否满足预设抽取所述非关系型数据库中日志的条件;
第一抽取模块,用于当所述判断抽取模块结果为是的情况下,从所述非关系型数据库中抽取当前时间至最近一次从所述非关系型数据库中抽取日志时间内产生的新日志;
日志变换模块,用于将进行等幂变换后的新日志存入所述日志数据库中;
判断日志模块,用于判断所述日志数据库中是否包含使所述非关系型数据库无法进行操作的日志;
第二抽取模块,用于当所述判断日志模块的结果为是的情况下,从所述日志数据库中抽取当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志。
优选的,所述日志变换模块还包括:日志过滤模块,所述日志过滤模块用于过滤所述非关系型数据库中所述本周期内重复和使所述非关系型数据库中的数据不发生变化的日志。
优选的,还包括:更新模块,用于当下一个时间周期到来时,将所述非关系型数据库中的数据替换所述镜像数据库的数据。
一种非关系型数据库的回滚系统,所述系统包括:
日志数据库,用于存储与所述非关系型数据库中当前时间周期的原始日志对应的需要重放的周期日志;
镜像数据库,用于存储所述非关系型数据库中当前时间周期以前数据的备份;
回滚装置,所述回滚装置包括:
判断模块,用于判断所述非关系型数据库是否无法进行操作,所述无法进行操作是指所述非关系型数据库中的数据的一致性和/或完整性被破坏;
数据替换模块,用于当所述判断模块的结果为是的情况下,将镜像数据库中的镜像数据替换所述非关系型数据库中的原始数据;
日志修改模块,用于按照所述日志数据库中当前时间周期内首次使所述非关系型数据库无法进行操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改。
经由上述的技术方案可知,采用本发明的实施例,首先,当所述非关系型数据库不能进行操作时,先将所述镜像数据库中当前时间周期之前的正确的数据替换掉所述非关系型数据库中的原始数据,然后再根据所述日志数据库中当前时间周期内首次使所述非关系型数据库不能操作之前的准确日志的内容,对所述非关系型数据库中的镜像数据进行修改,因为是在正确的数据上按照所述准确日志的内容进行修改,从而使所述非关系型数据库中的数据恢复到无法进行操作之前的数据,从而实现了所述非关系型数据库的回滚功能;其次,因为过滤了当前时间周期内首次使所述非关系型数据库无法进行操作之前准确日志中重复和使所述非关系型数据库中的数据不发生变化的日志,这样过滤后的所述准确日志相对没有过滤的准确日志的内容较少,当所述非关系型数据库按照所述准确日志的内容进行回滚时,所用的时间就会缩短,从而达到了快速回滚的效果。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图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、磁盘或光盘等。
以上对本发明实施例所提供的一种非关系型数据库的回滚方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明实施例的方法及其思想;同时,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。