事务数据的备份方法、备份系统及服务器与流程

文档序号:11176991阅读:434来源:国知局
事务数据的备份方法、备份系统及服务器与流程

本发明涉及计算机应用技术领域,尤其涉及一种事务数据的备份方法、备份系统及服务器。



背景技术:

在数据储存和数据备份的技术上,通常单机数据库仅能保证数据的完整性,一旦发生宕机,无法继续提供服务。

为了保持服务的连续性,部分数据库在高可靠性上提供主从模式的服务模式,当主用数据库所在服务器宕机后服务切换到备用数据库所在服务器上继续提供。例如,mysql数据库就是采用主从模式方式提供服务的可靠性。主从模式提供的高可靠性通过主机数据向从机发送变更数据,在从机上完成同样的操作。从而,在数据上和主机保持一致。

然后,现有mysql的主从复制,在某些极端情况下会出现数据不一致情况。比如,主用数据库所在服务器提交变化数据到本地,但是该变化数据没有发送到备用数据库所在服务器的时候出现宕机。完成故障切换之后,备用数据库所在服务器缺少该部分的数据,因此,出现数据不一致情况。



技术实现要素:

本发明为了克服上述现有技术存在的缺陷,提供一种事务数据的备份方法、备份系统及服务器,其能够在任一服务器故障时,实现主用数据库和备用数据库的同步。

根据本发明的一个方面,提供一种用于事务数据的备份系统的备份方法,所述备份系统包括一主用数据库所在的服务器及一个或多个备用数据库所在的服务器,所述备份方法包括如下备份步骤:所述主用数据库所在的服务器根据一事务数据生成一标识码,所述标识码唯一标识所述事务数据的备份操作,定义所述标识码对应的备份操作的标志状态为未完成;所述主用数据库所在的服务器将所述事务数据及所述标识码发送至至少一个所述备用数据库所在的服务器;所述备用数据库所在的服务器将所述标识码及所述事务数据持久化,并于所述备用数据库所在的服务器标志所述标识码,使所述标识码对应的备份操作的标志状态为已完成;所述备用数据库所在的服务器向所述主用数据库所在的服务器回复一回复信息,所述回复信息指示所述事务数据完成备份;所述主用数据库所在的服务器依据所述回复信息将所述标识码及所述事务数据持久化并于所述主用数据库所在的服务器标志所述标识码,使所述标识码对应的备份操作的标志状态为已完成,其中,当所述主用数据库所在的服务器或所述备用数据库所在的服务器在上述任一备份步骤故障时,所述故障的服务器依据所述标识码及其标志状态的查询以完成所述主用数据库和所述备用数据库的同步。

可选地,当所述主用数据库所在的服务器故障,将所述一个或多个备用数据库中的一个备用数据库作为所述主用数据库;将所述主用数据库作为一备用数据库。

可选地,当任一所述服务器故障重启时,于该重启的服务器中查询是否存在标志状态为事务数据的备份操作未完成的标识码,若存在,则该重启的服务器向当前主用数据库所在的服务器发送一查询信息以查询所述标识码在当前主用数据库所在的服务器的标志状态,该重启的服务器依据所述查询信息的结果以完成与当前主用数据库的同步。

可选地,若所述查询信息的结果表示该标识码于当前主用数据库所在的服务器的标志状态指示所述事务数据的备份操作已完成,则该重启的服务器向当前主用数据库所在的服务器请求所述事务数据。

可选地,若所述查询信息的结果表示该标识码于当前主用数据库所在的服务器的标志状态指示所述事务数据的备份操作未完成,则该重启的服务器在对应的数据库中删除对应该标识码的事务数据及该标识码。

可选地,当所述主用数据库所在的服务器故障时,在各所述备用数据库所在服务器查询所述主用数据库的所述标识码,所述标识码在所述主用数据库的标志状态为未完成,将该所述标识码在所述备份数据库的标志状态为已完成的备用数据库作为主用数据库。

可选地,所述标识码的标志状态由位于所述主用数据库所在的服务器的第一标志位和位于所述备用数据库所在的服务器的第二标志位来表示,所述第一标志位及所述第二标志位不同的值表示关联的标识码对应的事务数据的备份操作是否完成。

可选地,所述标识码的标志状态由位于所述主用数据库所在的服务器的第一队列和位于所述备用数据库所在的服务器的第二队列来表示,当所述主用数据库所在的服务器生成所述标识码时,将所述标识码放入所述第一队列,当所述主用数据库所在的服务器完成所述事务数据和所述标识码的持久化后,将所述标识码从所述第一队列中移出;当所述备用数据库所在的服务器接收所述标识码时,将所述标识码放入所述第二队列,当所述备用数据库所在的服务器完成所述事务数据和所述标识码的持久化后,将所述标识码从所述第二队列中移出。

可选地,所述主用数据库所在的服务器具有一主用标识。

可选地,所述标识码为:通用唯一识别码或者所述主用数据库所在的服务器生成的随机数。

根据本发明的又一方面,还提供一种事务数据的备份系统,包括:一主用数据库所在的服务器,包括:第一处理器;第一计算机可读存储介质,其上储存有第一计算机程序,所述第一计算机程序被所述第一处理器执行时实现如下主用数据库备份步骤:所述主用数据库所在的服务器根据一事务数据生成一标识码,所述标识码唯一标识所述事务数据的备份操作,定义所述标识码对应的备份操作的标志状态为未完成;所述主用数据库所在的服务器将所述事务数据及所述标识码发送至至少一个备用数据库所在的服务器;所述主用数据库所在的服务器依据所述备用数据库所在的服务器回复的回复信息将所述标识码及所述事务数据持久化并于所述主用数据库所在的服务器标志所述标识码,使所述标识码对应的备份操作的标志状态为已完成;一个或多个备用数据库所在的服务器,各所述备用数据库所在的服务器包括:第二处理器;第二计算机可读存储介质,其上储存有第二计算机程序,所述第二计算机程序被所述第二处理器执行时实现如下备用数据库备份步骤:所述备用数据库所在的服务器接收所述标识码及所述事务数据,将所述标识码及所述事务数据持久化,并于所述备用数据库所在的服务器标志所述标识码,使所述标识码对应的备份操作的标志状态为已完成;所述备用数据库所在的服务器向所述主用数据库所在的服务器回复一回复信息,所述回复信息指示所述事务数据完成备份;其中,当所述主用数据库所在的服务器或所述备用数据库所在的服务器在上述任一主用数据库备份步骤或者备用数据库备份步骤故障时,所述故障的服务器依据所述标识码及其标志状态的查询以完成所述主用数据库和所述备用数据库的同步。

可选地,所述主用数据库所在的服务器具有一主用标识,当所述主用标识更换至另一服务器时,所述第一计算机程序被所述第一处理器执行时实现所述备用数据库备份步骤,所述第二计算机程序被所述第二处理器执行时实现所述主用数据库备份步骤。

可选地,当任一所述服务器故障后重启时,于该重启的服务器中查询是否存在标志状态为事务数据的备份操作未完成的标识码,若存在,则该重启的服务器向当前主用数据库所在的服务器发送一查询信息以查询所述标识码在当前主用数据库所在的服务器的标志状态,该重启的服务器依据所述查询信息的结果以完成与当前主用数据库的同步。

根据本发明的又一方面,还提供一种服务器,用于实现主用数据库和备用数据库之间的数据备份,包括:处理器;计算机可读存储介质,其上储存有计算机程序,所述计算机程序被所述处理器执行时实现如下步骤:若所述服务器作为一主用数据库所在的服务器时,所述服务器根据一事务数据生成一标识码,所述标识码唯一标识所述事务数据的备份操作,定义所述标识码对应的备份操作的标志状态为未完成;所述服务器将所述事务数据及所述标识码发送至至少一个备用数据库所在的服务器;所述服务器依据所述备用数据库所在的服务器回复的回复信息将所述标识码及所述事务数据持久化并于所述服务器标志所述标识码,使所述标识码对应的备份操作的标志状态为已完成;若所述服务器作为一备用数据库所在的服务器时,所述服务器接收所述标识码及所述事务数据,将所述标识码及所述事务数据持久化,并于所述服务器标志所述标识码,使所述标识码对应的备份操作的标志状态为已完成;所述服务器向主用数据库所在的服务器回复一回复信息,所述回复信息指示所述事务数据完成备份;其中,当所述服务器在上述任一步骤故障时,所述故障的服务器依据所述标识码与其标志状态的查询以完成所述主用数据库和所述备用数据库的同步。

相比现有技术,本发明的优势在于通过主用数据库所在的服务器与备用数据库所在的服务器传输事务数据的同时传输一标识码,并分别根据事务数据的传输情况,标志与该标识码对应的事务数据的备份操作的状态,当主用数据库所在的服务器或备用数据库所在的服务器在任一步骤故障时,所述故障的服务器依据所述标识码及其标志状态的查询以完成所述主用数据库和所述备用数据库的同步,实现主用数据库和备用数据库的数据一致性。

附图说明

通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。

图1示出了根据本发明实施例的事务数据的备份系统的结构示意图。

图2示出了根据本发明实施例的事务数据的备份系统中主用数据库所在服务器故障后的结构示意图。

图3示出了根据本发明实施例的事务数据的备份系统的示意图。

图4示出了根据本发明实施例的事务数据的备份方法的时序图。

图5示出了根据本发明实施例的主用数据库所在服务器故障重启后的备份方法的时序图。

图6示出了根据本发明实施例的主用数据库所在服务器故障重启后的备份方法的时序图。

图7示出了根据本发明实施例的备用数据库所在服务器故障重启后的备份方法的时序图。

图8示出了根据本发明实施例的备用数据库所在服务器故障重启后的备份方法的时序图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。

所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员应意识到,没有所述特定细节中的一个或更多,或者采用其它的方法、组元、材料等,也可以实践本发明的技术方案。在其它情况下,不详细示出或描述公知结构、材料或者操作以避免模糊本发明。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本发明中所述的“第一”、“第二”等序数词仅为命名区分,并非用于限定不同的设备或不同的结构。

为了解决现有技术的缺陷,实现备用数据库和主用数据库的数据一致性,本发明提供一种事务数据的备份方法及备份系统。备份系统包括一主用数据库所在的服务器及一个或多个备用数据库所在的服务器。所述备份方法包括如下备份步骤:所述主用数据库所在的服务器根据一事务数据生成一标识码,所述标识码唯一标识所述事务数据的备份操作,定义所述标识码对应的标志状态为未完成;所述主用数据库所在的服务器将所述事务数据及所述标识码发送至至少一个所述备用数据库所在的服务器;所述备用数据库所在的服务器将所述标识码及所述事务数据持久化,并于所述备用数据库所在的服务器,使所述标识码对应的备份操作的标志状态为已完成;所述备用数据库所在的服务器向所述主用数据库所在的服务器回复一回复信息,所述回复信息指示所述事务数据完成备份;所述主用数据库所在的服务器依据所述回复信息将所述标识码及所述事务数据持久化并于所述主用数据库所在的服务器标志所述标识码,使所述标识码对应的备份操作的标志状态为已完成,其中,当所述主用数据库所在的服务器或所述备用数据库所在的服务器在上述任一备份步骤故障时,所述故障的服务器依据所述标识码及其标志状态的查询以完成所述主用数据库和所述备用数据库的同步。

下面结合附图说明本发明提供的多个实施例。首先参见图1,图1示出了根据本发明实施例的事务数据的备份系统的结构示意图。备份系统包括一主用数据库所在的服务器110及一个或多个备用数据库所在的服务器120。图1中示出了一个主用数据库所在的服务器110及四个备用数据库所在的服务器120,但备用数据库所在的服务器的数量并非以此为限。主用数据库所在的服务器110与各备用数据库所在的服务器120相通讯。在一些实施例中,主用数据库所在的服务器110与各备用数据库所在的服务器120位于同一局域网中,并通过无线的方式相互连接。在又一些实施例中,主用数据库所在的服务器110与各备用数据库所在的服务器120位于互联网中,并通过无线的方式相互连接。在其他实施例中,主用数据库所在的服务器110还可以通过有线的方式与各备用数据库所在的服务器120相连。本领域技术人员可以实现不同的连接通讯方式,在此不予赘述。

在一些实施例中,主用数据库所在的服务器110及备用数据库所在的服务器120为相同的设备,当服务器作为主用数据库所在的服务器110时执行主用数据库所需的操作,当服务器作为备用数据库所在的服务器120时执行备用数据库所需的操作。在又一些实施例中,上述各服务器也可以是不同的设备,但可以执行相同的操作。

在图1所示的实施例中,当产生事务数据时,由主用数据库所在的服务器110将事务数据发送至多个备用数据库所在的服务器120,并在多个备用数据库所在的服务器120处持久化以完成事务数据的备份。进一步地,在本发明中,主用数据库所在的服务器110与备用数据库所在的服务器120传输事务数据的同时传输一标识码,并且主用数据库所在的服务器110与备用数据库所在的服务器120分别根据事务数据的传输情况,标志该标识码对应的事务数据的备份操作的备份状态。

具体而言,在事务数据的备份系统中,若一备用数据库所在的服务器120故障(例如宕机)时,主用数据库所在的服务器110继续提供服务。该备用数据库所在的服务器120重启后,继续作为备用数据库所在的服务器120使用,并根据标识码及其标志状态的查询继续该服务器120故障前的备份操作以实现主用数据库和备用数据库的一致性。换言之,在这样的实施例中,备用数据库所在的服务器120故障重启后的系统结构与该备用数据库所在的服务器120故障前相同。

结合图1与图2,图2示出了根据本发明实施例的事务数据的备份系统中主用数据库所在服务器故障后的结构示意图。若一主用数据库所在的服务器110故障(例如宕机)时,由一备用数据库所在的服务器120作为主用数据库所在的服务器210继续提供服务。此外,在一个优选地实施例中,由一完成主用数据库所在的服务器110故障当前的事务数据备份的备用数据库所在的服务器120作为主用数据库所在的服务器210继续提供服务。该故障的主用数据库所在的服务器110重启后,作为备用数据库所在的服务器220使用。该故障的主用数据库所在的服务器220重启后根据标识码及其标志状态的查询继续服务器220故障前的备份操作以实现主用数据库和备用数据库的一致性。换言之,在这样的实施例中,主用数据库所在的服务器110故障重启后的系统结构将如图2所示。

进一步地,在以上的描述中涉及了服务器故障时,主用数据库和备用数据库的交替使用,具体交替方式可以参见图3,图3示出了根据本发明实施例的事务数据的备份系统的示意图。为了清楚起见,图3示出了两个服务器810及820。服务器810包括处理器811及计算机可读存储介质812。服务器820包括处理器821及计算机可读存储介质822。

当一主用标识830位于服务器810时,服务器810为主用数据库所在的服务器,服务器820为备用数据库所在的服务器。对应地,计算机可读存储介质812上的计算机程序被处理器811执行时可实现对应主用数据库的主用数据库备份步骤;计算机可读存储介质822上的计算机程序被处理器821执行时可实现对应备用数据库的备用数据库备份步骤。

当服务器810故障时,首先在服务器820处设置一主用标识830,并当服务器810重启时,删除其主用标识。此时,服务器810为备用数据库所在的服务器,服务器820为主用数据库所在的服务器。对应地,计算机可读存储介质812上的计算机程序被处理器811执行时可实现对应备用数据库的备用数据库备份步骤;计算机可读存储介质822上的计算机程序被处理器821执行时可实现对应主用数据库的主用数据库备份步骤。

下面参见图4,图4示出了根据本发明实施例的事务数据的备份方法的时序图。为了清楚起见,图4仅示出一个主用数据库所在的服务器110及一个备用数据库所在的服务器120。可以理解,该主用数据库所在的服务器110可采用相同的步骤时序与其他备用数据库所在的服务器进行数据备份。

主用数据库所在的服务器110首先执行步骤s301,根据一事务数据生成一标识码。标识码唯一标识事务数据的备份操作。该标识码可以是通用唯一识别码(uuid)或者由主用数据库所在的服务器110生成的随机数。该标识码与一第一标志位对应关联,第一标志位的标志状态指示标识码对应的备份操作是否完成。在一些实施例中,该第一标志位可标识码关联地设置在一文件中。在又一些实施例中,该第一标志位也可设置在该标识码的前侧或后侧,例如,0000000(标识码)0(第一标志位,例如,0表示备份操作未完成,1表示备份操作已完成)。

然后,主用数据库所在的服务器110执行步骤s302,将事务数据及标识码发送至备用数据库所在的服务器120。

之后,备用数据库所在的服务器120执行步骤s303,将标识码及事务数据持久化,并于备用数据库所在的服务器120设置标识码关联的第二标志位。

具体而言,在一些实施例中,当备用数据库所在的服务器120接受到标识码及事务数据后,在标识码及事务数据储存在备用数据库所在的服务器120的内存中,备用数据库所在的服务器120需要对标识码及事务数据进行持久化操作,将内存中的数据模型转换为存储模型,以实现持久化的储存。进一步地,在一些实施例中,与标识码关联的第一标志位同标识码一起发送至备用数据库所在的服务器120并作为第二标志位,且备用数据库所在的服务器120持久化标识码及事务数据后,在服务器120处设置标识码关联的第二标志位(例如将第二标志位设置为1,以表示备份操作已完成)。在又一些变化例中,备用数据库所在的服务器120持久化标识码及事务数据后,在服务器120处生成并设置该标识码关联的第二标志位。该第二标志位可与标识码关联地储存在服务器120的一文件中,或者将该第二标志位持久化后同标识码储存在一起。本领域技术人员可以实现更多的变化方式,在此不予赘述。

随后,备用数据库所在的服务器120执行步骤s304,向主用数据库所在的服务器110回复一回复信息。回复信息指示事务数据完成备份。

而后,主用数据库所在的服务器110执行步骤s305,依据回复信息将标识码及事务数据持久化并于主用数据库所在的服务器110设置标识码关联的第一标志位。

与备用数据库所在的服务器120将标识码及事务数据持久化相同,主用数据库所在的服务器110对标识码及事务数据进行持久化操作,将内存中的数据模型转换为存储模型。主用数据库所在的服务器110持久化标识码及事务数据后,在服务器110处设置标识码关联的第一标志位(例如将第一标志位设置为1,以表示备份操作已完成)。

在上述实施例中,若主用数据库所在的服务器或备用数据库所在的服务器在上述步骤s301至s305的任意步骤中故障,则故障的服务器可以依据标识码与标志位的查询以完成主用数据库和备用数据库的同步,如下将结合图5至图8进行描述。

图5示出了根据本发明实施例的主用数据库所在服务器故障重启后的备份方法的时序图。在这样的实施例中,主用数据库所在的服务器故障重启后作为一备用数据库所在的服务器220使用,而将主用数据库所在的服务器未故障时的一备用数据库所在的服务器作为当前主用数据库所在的服务器210使用。如上所述,在一个优选地实施例中,由一完成主用数据库所在的服务器110故障当前的事务数据备份的备用数据库所在的服务器120作为主用数据库所在的服务器210继续提供服务。例如,可以通过标识码的第二标志位的查询,将未有标识码关联第二标志位为未完成的备用数据库所在的服务器120作为主用数据库所在的服务器210继续提供服务,且其他存在标识码关联的第二标志位为未完成备用数据库所在的服务器120与主用数据库所在的服务器210交互以完成这些未完成的事务数据的备份操作。

此时,重启的服务器220首先执行步骤s401,其判断在该重启的服务器220中存在第一标志位为(对应事务数据的备份操作)未完成的标识码。具体而言,重启的服务器220可以读取含有第一标志位与标识码关联关系的文件,以判断第一标志位的状态。此外,由于重启的服务器220故障前的作为主用数据库的服务器,其第一标志位的设置在备用数据服务器设置第二标志位的设置之后,因此,若在该重启的服务器220中不存在第一标志位为未完成的标识码,则表示所有标识码标识的事务数据的备份操作均已完成,无需进行后续的同步操作,在此不再赘述。

步骤s401后,重启的服务器220执行步骤s402,向当前主用数据库所在的服务器210发送一查询信息。该查询信息中包含重启的服务器220在步骤s401中查询到第一标志位的标志状态为未完成的标识码。

之后,当前主用数据库所在的服务器210执行步骤s403,根据该查询信息中的标识码查询在当前主用数据库所在的服务器210,该标识码对应的第二位的状态。在本实施例中,当前主用数据库所在的服务器210查询到在当前主用数据库所在的服务器210中该标识码对应的第二标志位指示对应的事务数据的备份已完成。

查询后,当前主用数据库所在的服务器210执行步骤s404,向重启的服务器220回复查询结果。

重启的服务器220在步骤s405接收该查询结果。根据该查询结果,第一标志位在重启的服务器220为未完成的标识码,其在当前主用数据库所在的服务器210的第二标志位为已完成,说明该标识码对应的事务数据已在当前主用数据库所在的服务器210中持久化,而未在重启的服务器220中持久化。

因此,重启的服务器220在步骤s406向当前主用数据库所在的服务器210请求事务数据(可能有部分数据已在重启的服务器220中持久化,可仅向当前主用数据库所在的服务器210请求剩余部分的事务数据)。之后,当前主用数据库所在的服务器210向重启的服务器220发送该事务数据(可选地,同时发送对应的标识码)。重启的服务器220收到事务数据后在步骤s408,将事务数据与其对应的标识码持久化,并将标识码关联的第一标志位设置为事务数据的备份操作已完成。

在图5的一个变化例中,可以参见图6,图6示出了根据本发明实施例的主用数据库所在服务器故障重启后的备份方法的时序图。

于图6中,步骤s501至步骤s502与步骤s401和步骤s402相同。

之后,当前主用数据库所在的服务器210执行步骤s503,当前主用数据库所在的服务器210根据步骤s502的该查询信息中的标识码查询查询到在当前主用数据库所在的服务器210中该标识码对应的第二标志位指示对应的事务数据的备份未完成。

查询后,当前主用数据库所在的服务器210执行步骤s504,向重启的服务器220回复查询结果。

重启的服务器220在步骤s505接收该查询结果。根据该查询结果,第一标志位在重启的服务器220为未完成的标识码,其在当前主用数据库所在的服务器210的第二标志位为未完成,说明该标识码对应的事务数据未在当前主用数据库所在的服务器210中持久化,也未在重启的服务器220中持久化。

因此,重启的服务器220在步骤s506清楚对应标识码的事务数据(可能有部分事务数据在重启的服务器220中持久化,清楚该部分数据)并同时清楚该标识码,以回复到数据备份前的状态。

通过上述图5及图6所示的时序,完成重启后的主用数据库和备用数据库的同步,以使数据保持一致。

具体而言,若主用数据库所在的服务器(重启的服务器220)在图4所示步骤s301或s302处发生故障,则可以理解,数据未进行发送,而且在重启的服务器220处事务失败,且备用数据库所在的服务器(当前主用数据库所在的服务器210)无数据,状态保持一致。

若主用数据库所在的服务器(重启的服务器220)在图4所示步骤s304或s305处发生故障,则备用数据库所在的服务器已完成事务数据和标识码的持久化,并且该备用数据库所在的服务器将作为当前主用用数据库所在服务器210来使用。主用数据库所在的服务器(重启的服务器220)重启时连接当前主用用数据库所在服务器210,进行标识码的第二标志位的查询,判断当前主用用数据库所在服务器210针对该标识码的事务数据的备份操作是否完成(查询标志位)。

换言之,若查询的关联标识码的第二标志位为备份操作已完成,则说明事务数据在当前主用用数据库所在服务器210已持久化,需要完成未完成的事务数据的备份,对该部分事务数据进行恢复。若查询的关联标识码的第二标志位为备份操作未完成,则说明当前主用用数据库所在服务器210不存在对应该标识码的事务数据,需要在重启的服务器220上清除该事务数据及对应的标识码以恢复到事务数据备份前的状态。

以上描述了原来的主用数据库所在的服务器故障重启后的备份时序,下面分别根据图7和图8描述备用数据库所在的服务器故障重启后的备份时序。图7示出了根据本发明实施例的备用数据库所在服务器故障重启后的备份方法的时序图。图8示出了根据本发明实施例的备用数据库所在服务器故障重启后的备份方法的时序图。

如图7中示出重启的服务器120(原本的备用数据库所在的服务器)以及当前主用数据库所在的服务器110(原本的主用数据库所在的服务器),其时序与图5所示类似。

重启的服务器120首先执行步骤s601,其判断在该重启的服务器120中存在第二标志位为(对应事务数据的备份操作)未完成的标识码。若在该重启的服务器120中不存在第二标志位为未完成的标识码,则表示无需进行后续的同步操作。

步骤s601后,重启的服务器120执行步骤s602,向当前主用数据库所在的服务器110发送一查询信息。该查询信息中包含重启的服务器120在步骤s601中查询到第二标志位为未完成的标识码。之后,当前主用数据库所在的服务器110执行步骤s603,根据该查询信息中的标识码查询到在当前主用数据库所在的服务器110中该标识码对应的第一标志位指示对应的事务数据的备份已完成。查询后,当前主用数据库所在的服务器110执行步骤s604,向重启的服务器120回复查询结果。

重启的服务器120在步骤s605接收该查询结果。根据该查询结果,第二标志位在重启的服务器120为未完成的标识码,其在当前主用数据库所在的服务器110的第一标志位为已完成,说明该标识码对应的事务数据已在当前主用数据库所在的服务器110中持久化,而未在重启的服务器120中持久化。

因此,重启的服务器120在步骤s606至s608完成事务数据的备份及标识码关联的第二标志位的设置操作。在一些实施例中,上述情况可能不存在,因此,在这些实施例中无需执行上述步骤。

下面参见图8,于图8中,步骤s701至步骤s702与步骤s601和步骤s602相同。

之后,当前主用数据库所在的服务器110执行步骤s703,根据步骤s702的该查询信息中的标识码查询查询到在当前主用数据库所在的服务器110中该标识码对应的第一标志位指示对应的事务数据的备份未完成。查询后,当前主用数据库所在的服务器110执行步骤s704,向重启的服务器720回复查询结果。

重启的服务器120在步骤s705接收该查询结果。根据该查询结果,第二标志位在重启的服务器120为未完成的标识码,其在当前主用数据库所在的服务器110的第一标志位为未完成,说明该标识码对应的事务数据未在当前主用数据库所在的服务器110中持久化,也未在重启的服务器120中持久化。

因此,重启的服务器120在步骤s706清楚对应标识码的事务数据(可能有部分事务数据在重启的服务器120中持久化,清楚该部分数据)并同时清楚该标识码,以回复到数据备份前的状态。

为了保证图5至图8所示的时序图顺利进行,标识码、事务数据和标志位的设置顺序优选地,为首先持久化标识码,然后持久化事务数据,最后设置标志位为关联标识码对应的事务数据的备份已完成。

以上图5至图8仅仅描述了以标志位表示标识码对应的事务数据的备份操作的标志状态的实施例。在本发明的一些变化例中,还可以采用队列的形式来进行标志。

例如,标识码的标志状态由位于主用数据库所在的服务器的第一队列和位于备用数据库所在的服务器的第二队列来表示。当主用数据库所在的服务器生成标识码时,将标识码放入第一队列。当主用数据库所在的服务器完成事务数据和标识码的持久化后,将标识码从第一队列中移出。当备用数据库所在的服务器接收标识码时,将标识码放入第二队列,当备用数据库所在的服务器完成事务数据和标识码的持久化后,将标识码从第二队列中移出。根据上述方式,位于第一队列中的标识码对应的事务数据的备份操作在主用数据库所在的服务器未完成,而未在第一队列中出现的标识码对应的事务数据的备份操作在主用数据库所在的服务器已完成;位于第二队列中的标识码对应的事务数据的备份操作在备用数据库所在的服务器未完成,而未在第二队列中出现的标识码对应的事务数据的备份操作在备用数据库所在的服务器已完成。在后续故障重启后,仅需查询队列中的标识码即可确定标识码对应的事务数据的备份操作的标志状态。

相比现有技术,本发明的优势在于通过主用数据库所在的服务器与备用数据库所在的服务器传输事务数据的同时传输一标识码,并分别根据事务数据的传输情况,标志与该标识码对应的事务数据的备份操作的状态,当主用数据库所在的服务器或备用数据库所在的服务器在任一步骤故障时,所述故障的服务器依据所述标识码及其标志状态的查询以完成所述主用数据库和所述备用数据库的同步,实现主用数据库和备用数据库的数据一致性。

通过以上的实施方式的描述,本领域的技术人员易于理解,本公开实施例可以通过硬件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

本领域技术人员可以理解,附图只是示例实施方式的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。

本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

以上具体地示出和描述了本发明的示例性实施方式。应该理解,本发明不限于所公开的实施方式,相反,本发明意图涵盖包含在所附权利要求范围内的各种修改和等效置换。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1