CN102891849B - 业务数据同步方法、恢复方法及装置和网络设备 - Google Patents

业务数据同步方法、恢复方法及装置和网络设备 Download PDF

Info

Publication number
CN102891849B
CN102891849B CN201210361113.5A CN201210361113A CN102891849B CN 102891849 B CN102891849 B CN 102891849B CN 201210361113 A CN201210361113 A CN 201210361113A CN 102891849 B CN102891849 B CN 102891849B
Authority
CN
China
Prior art keywords
business transaction
server
business
mark
daily record
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.)
Active
Application number
CN201210361113.5A
Other languages
English (en)
Other versions
CN102891849A (zh
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 Ruishan Network Co., Ltd
Original Assignee
Beijing Star Net Ruijie Networks 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 Beijing Star Net Ruijie Networks Co Ltd filed Critical Beijing Star Net Ruijie Networks Co Ltd
Priority to CN201210361113.5A priority Critical patent/CN102891849B/zh
Publication of CN102891849A publication Critical patent/CN102891849A/zh
Application granted granted Critical
Publication of CN102891849B publication Critical patent/CN102891849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种业务数据同步方法、恢复方法及装置和网络设备。同步方法包括:作为主服务器的第一服务器执行同步处理事务;该同步处理事务包括:执行第一业务事务产生第一业务数据、在本地第一业务事务记录表中记录第一业务事务的标识、生成业务事务日志以及将第一业务事务的标识和业务事务日志写入第二服务器的业务事务日志表中并在业务事务日志表中设置第一业务事务的提交状态信息为未提交;如果同步处理事务执行成功,设置第一业务事务的提交状态信息为已提交;第一服务器执行同步事务,以向第二服务器同步第一业务数据。采用本发明技术方案可以保证切换前后主备服务器的数据库完全一致。

Description

业务数据同步方法、恢复方法及装置和网络设备
技术领域
本发明涉及网络通信技术,尤其涉及一种业务数据同步方法、恢复方法及装置和网络设备。
背景技术
为提高服务器系统的可用性,常采用主备冗余设计,以缩短主服务器故障导致服务不可用的时间。高可用集群是服务器系统主备冗余设计之一,是以减少服务中断时间为目的的服务器集群技术。在高可用集群中,如果某个服务器失效,它的备用服务器将在短时间内接管该服务器的职责,以使高可用集群的整体服务尽可能可用,从而减少由集群中硬件和软件异常所带来的损失。
要使备用服务器能够接管主服务器的职责,必须保证主备服务器的数据库完全一致,这就要求数据必须实时同步,尤其是对数据同步可靠性要求较高的一些关键业务数据,以尽可能减少对于用户的损失。一种常用的数据同步方法是利用数据库现有的复制技术,以事务为单位向备用服务器同步数据。由于以事务为单位的数据复制为异步复制,实时性受网络及主服务器负载等因素的影响,所以数据库复制技术在数据同步过程中存在时延,这就可能造成在主备服务器切换过程来不及将数据同步到备用服务器,从而导致切换前后主备服务器的数据库不完全一致。
发明内容
本发明提供一种业务数据同步方法、恢复方法及装置和网络设备,用以保证切换前后主备服务器的数据库完全一致。
本发明第一方面提供一种业务数据同步方法,包括:
作为主服务器的第一服务器执行同步处理事务;所述同步处理事务包括:执行第一业务事务产生第一业务数据、在本地第一业务事务记录表中记录所述第一业务事务的标识、生成业务事务日志以及将所述第一业务事务的标识和所述业务事务日志写入第二服务器的业务事务日志表中并在所述业务事务日志表中设置所述第一业务事务的提交状态信息为未提交,以供所述第二服务器在切换为主服务器之后,根据所述第二服务器的第二业务事务记录表和所述业务事务日志表实现与所述第一服务器的数据库的同步,所述业务事务日志包括重新执行所述第一业务事务所需的信息,所述第二业务事务记录表用于存储由所述第一服务器成功同步到所述第二服务器的业务数据对应的业务事务的标识;
如果所述同步处理事务执行成功,所述第一服务器设置所述业务事务日志表中所述第一业务事务的提交状态信息为已提交;
所述第一服务器执行同步事务,所述同步事务包括:向所述第二服务器同步所述第一业务数据并将所述第一业务事务记录表中记录的所述第一业务事务的标识写入所述第二业务事务记录表中。
本发明第二方面提供一种业务数据恢复方法,包括:
切换为主服务器的第二服务器判断本地的业务事务日志表中记录的业务事务的标识是否全部存在于本地的第二业务事务记录表中;所述第二业务事务记录表用于存储由切换之前作为主服务器的第一服务器成功同步到所述第二服务器的业务数据对应的业务事务的标识;所述业务事务日志表用于存储所述第一服务器在切换之前根据执行同步处理事务写入的业务事务的标识、业务事务日志和提交状态信息;
如果判断结果为否,所述第二服务器获取存在于所述业务事务日志表中但不存在于所述第二业务事务记录表中的第一业务事务的标识;
如果所述业务事务日志表中记录的与所述第一业务事务的标识对应的提交状态信息为已提交,所述第二服务器根据所述业务事务日志表中记录的与所述第一业务事务的标识对应的业务事务日志,重新执行所述第一业务事务以产生第一业务数据。
本发明第三方面提供一种业务数据同步装置,设置于作为主服务器的第一服务器中,所述装置包括:
同步处理模块,用于执行同步处理事务,所述同步处理事务包括:执行第一业务事务产生第一业务数据、在所述第一服务器的第一业务事务记录表中记录所述第一业务事务的标识、生成业务事务日志以及将所述第一业务事务的标识和所述业务事务日志写入第二服务器的业务事务日志表中并在所述业务事务日志表中设置所述第一业务事务的提交状态信息为未提交,以供所述第二服务器在切换为主服务器之后,根据所述第二服务器的第二业务事务记录表和所述业务事务日志表实现与所述第一服务器的数据库的同步,所述业务事务日志包括重新执行所述第一业务事务所需的信息,所述第二业务事务记录表用于存储由所述第一服务器成功同步到所述第二服务器的业务数据对应的业务事务的标识;
设置模块,用于在所述同步处理事务执行成功后,设置所述业务事务日志表中所述第一业务事务的提交状态信息为已提交;
同步模块,用于执行同步事务,所述同步事务包括:向所述第二服务器同步所述第一业务数据并将所述第一业务事务记录表中记录的所述第一业务事务的标识写入所述第二业务事务记录表中。
本发明第四方面提供一种业务数据恢复装置,设置于切换为主服务器的第二服务器中,所述装置包括:
判断模块,用于判断所述第二服务器的业务事务日志表中记录的业务事务的标识是否全部存在于所述第二服务器的第二业务事务记录表中;所述第二业务事务记录表用于存储由切换之前作为主服务器的第一服务器成功同步到所述第二服务器的业务数据对应的业务事务的标识;所述业务事务日志表用于存储所述第一服务器在切换之前根据执行同步处理事务写入的业务事务的标识、业务事务日志和提交状态信息;
获取模块,用于在所述判断模块的判断结果为否时,获取存在于所述业务事务日志表中但不存在于所述第二业务事务记录表中的第一业务事务的标识;
恢复处理模块,用于在所述业务事务日志表中记录的与所述第一业务事务的标识对应的提交状态信息为已提交时,根据所述业务事务日志表中记录的与所述第一业务事务的标识对应的业务事务日志,重新执行所述第一业务事务以产生第一业务数据。
本发明第五方面提供一种网络设备,包括:本发明第三方面提供的任一业务数据同步装置,和/或,本发明第四方面提供的任一业务数据恢复装置。
本发明提供的业务数据同步方法、装置和网络设备,第一服务器在作为主服务器时,通过使用业务事务日志记录重新执行第一业务事务所需的业务事务日志,并将该业务事务日志写入第二服务器,在因故障第一服务器和第二服务器发生切换后,第二服务器在接管第一服务器的业务时,若发现有业务数据未能从切换前的第一服务器上同步过来,则可以根据业务事务日志重新执行相应的业务事务进行业务数据的自动恢复,进而解决了由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题。
本发明提供的业务数据恢复方法、装置和网络设备,第二服务器从备用服务器切换为主服务器之后,根据本地的第二业务事务记录表和业务事务日志表判断在切换之前第一服务器是否有未能成功同步过来的业务数据,并在判断出有未能成功同步的业务数据后,根据业务事务日志表中记载的业务事务日志重新执行相应的业务事务产生业务数据,实现了与第一服务器的数据库的一致,进而解决了由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题,有利于整个服务器系统服务质量的提高。
附图说明
图1为本发明一实施例提供的业务数据同步方法的流程图;
图2为本发明一实施例提供的业务数据恢复方法的流程图;
图3为本发明一实施例提供的业务数据同步装置的结构示意图;
图4为本发明一实施例提供的业务数据恢复装置的结构示意图;
图5为本发明另一实施例提供的业务数据恢复装置的结构示意图。
具体实施方式
在存在主备冗余设计的服务器系统中,现有技术通常采用数据库复制技术进行数据同步。数据库复制技术是以事务为单位向备用服务器同步数据的,由于以事务为单位的数据复制为异步复制,实时性受网络及主服务器负载等因素的影响,该数据同步过程存在时延,有可能在主备服务器发生切换的过程中来不及将主服务器的数据同步到备用服务器,从而导致切换前后主备服务器的数据库的不完全一致。针对该问题,本发明实施例提供一种解决方案。
本发明实施例提供的解决方案的主要核心思想是:主服务器执行业务事务产生业务数据、在本地记录业务事务的标识、根据业务事务处理过程中的日志信息生成业务事务日志并将业务事务日志写入备用服务器;然后主服务器可以采用各种数据同步技术向备用服务器实时同步上述业务数据。上述业务事务日志包括重新执行上述业务事务所需的信息。主用服务器使用业务事务日志记录重新执行上述业务事务所需的信息,然后将该信息写入备用服务器,这样主备服务器由于故障发生切换后,备用服务器在接管主服务器的业务时,若发现有业务数据未能从切换前的主服务器上同步过来,则可以根据业务事务日志重新执行相应的业务事务进行业务数据的自动恢复,进而解决了由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题。
在该解决方案中,主服务器将业务事务的执行、在本地记录业务事务的标识、生成业务事务日志以及将业务事务日志写入备用服务器作为一个事务(本实施称该事务为同步处理事务)执行,这样可以保障业务事务的执行、记录业务事务的标识和生成业务事务日志的原子性。由于向备用服务器写入业务事务日志操作的是对端,虽然无法保证与本地数据库操作之间的原子性,但是向备用服务器写入业务事务日志作为一个事务具有原子性。另外,上述业务事务日志并未参与业务数据的同步过程,而是主服务器在执行同步处理事务过程中主动写入备用服务器的。
对于每一笔业务事务的操作,主服务器都能够产生足以用于重新执行该业务事务所需的业务级日志(即业务事务日志)。每成功提交一笔业务事务,主服务器都会在备用服务器上记录对应的业务事务日志。
下面实施例将分别描述切换前主服务器向备用服务器同步业务数据的过程和切换后主服务器根据业务事务日志恢复业务数据的过程。在本发明以下实施例中,为了便于描述和区分,将互为备份的两个服务器分别成为第一服务器和第二服务器。
图1为本发明一实施例提供的业务数据同步方法的流程图。如图1所示,本实施例的方法包括:
步骤101、作为主服务器的第一服务器执行同步处理事务,该同步处理事务包括:执行第一业务事务产生第一业务数据、在本地第一业务事务记录表中记录第一业务事务的标识、生成业务事务日志以及将第一业务事务的标识和业务事务日志写入第二服务器的业务事务日志表中并在业务事务日志表中设置第一业务事务的提交状态信息为未提交,以供第二服务器在切换为主服务器之后,根据第二业务事务记录表和业务事务日志表实现与第一服务器的数据库的同步,该业务事务日志包括重新执行第一业务事务所需的信息,第二业务事务记录表用于存储由第一服务器同步到第二服务器的业务数据对应的业务事务的标识。
在本实施例中,第一服务器为主服务器,第二服务器为备用服务器。对于每一个业务事务,第一服务器对其处理流程都是相同的,故本实施例以其中一个业务事务为例进行说明,并将该业务事务称为第一业务事务。
在本实施例中,第一服务器上和第二服务器上均设置有一个业务事务记录表,为便于区分将第一服务器上的业务事务记录表称为第一业务事务记录表,将第二服务器上的业务事务记录表称为第二业务事务记录表。第一业务事务记录表用于存储第一服务器执行的业务事务的标识(ID),这样便于第一服务器知道已经处理了哪些业务事务;第二业务事务记录表用于存储由第一服务器成功同步到第二服务器的业务数据对应的业务事务的标识,这样便于第二服务器了解第一服务器将哪些业务事务的业务数据成功同步过来了。第二服务器上还设置有业务事务日志表,该业务事务日志表用于存储第一服务器成功执行的业务事务的标识、业务事务日志以及业务事务的提交状态信息。对于任何一个事务来说,在事务执行过程中,所有的操作都是在虚拟的环境中进行的,只有事务执行成功时才将事务进行的所有修改更新到数据库的存储介质上,例如硬盘;如果事务执行失败,需要进行回滚操作,以便可以取消事务所进行的修改;如果事务执行成功后,再执行回滚操作是无效的。这里的事务执行成功也就是该事务提交成功,事务执行失败意味着事务提交失败。本实施例的同步处理事务属于一个事务,业务事务属于同步处理事务中的一个操作,因此,同步处理事务执行成功意味着业务事务提交成功,同步处理事务执行失败也就意味着业务事务提交失败。其中,如果业务事务的提交状态信息为已提交,意味着同步处理事务执行成功。
在本实施例中,第一服务器将执行第一业务事务产生第一业务数据、在本地第一业务事务记录表中记录第一业务事务的标识、生成业务事务日志以及将第一业务事务的标识和业务事务日志写入第二服务器的业务事务日志表并在业务事务日志表中设置第一业务事务的提交状态信息为未提交这些操作作为一个整体的事务(即同步处理事务),以保证各动作之间的原子性。其中,由于将第一业务事务的标识和业务事务日志写入第二服务器的业务事务日志表并在业务事务日志表中设置第一业务事务的提交状态信息为未提交这些操作的对象是对端,所以无法保证与前面几个操作的原子性,但是这些操作之间具有原子性。
步骤102、如果该同步处理事务执行成功,第一服务器可以设置业务事务日志表中第一业务事务的提交状态信息为已提交。
首先,第一服务器会启动同步处理事务,接着执行该同步处理事务的流程,接下来是同步处理事务的提交。如果该同步处理事务执行成功,第一服务器可以设置业务事务日志表中第一业务事务的提交状态信息为已提交,这也表明了第一服务器的数据库中已经存在第一业务数据。
可选的,如果该同步处理事务执行失败,则第一服务器删除第二服务器的业务事务日志表中的第一业务事务的标识、业务事务日志以及第一业务事务的提交状态信息。此时的提交状态信息为未提交。
步骤103、第一服务器执行同步事务,该同步事务包括:向第二服务器提交第一业务数据并将第一业务事务记录表中记录的第一业务事务的标识写入第二业务事务记录表中。
具体的,如果上述同步处理事务执行成功,则第一服务器还会向第二服务器同步第一业务数据并将第一业务事务记录表中的第一业务事务的标识写入第二业务事务记录表中,以便于第二服务器获知第一服务器已经成功将第一业务数据同步过来。其中,第一服务器可以采用各种数据同步技术向第二服务器同步第一业务数据。例如,第一服务器可以采用数据库复制技术向第二服务器同步第一业务数据。又例如,第一服务器也可以采用同步应用程序周期性的向第二服务器同步第一业务数据。
在此说明,本实施例并不限定步骤102和步骤103之间的执行顺序,可以并行执行。
在此说明,上述各种操作均是第一服务器在作为主服务器的情况下执行的。如果第一服务器在执行任何一个操作过程中,与第二服务器发生切换(即第一服务器切换为备用服务器,而第二服务器切换为主服务器),则该操作和该操作之后的操作就会终止。举例说明:
如果第一服务器在执行同步处理事务的过程中,与第二服务器发生切换,则该同步处理事务过程就会中断,由于同步处理事务本身的原子性,该同步处理事务执行过程中产生的各种信息都将被回滚,即第一服务器上在同步处理事务执行过程中产生的信息都将被删除。但是由于同步处理事务中将第一业务事务的标识、业务事务日志写入第二服务器以及设置第一业务事务的提交状态信息无法保证与前述几个操作之间的原子性,所以如果同步处理事务执行到向第二服务器写入第一业务事务的标识、业务事务日志以及设置第一业务事务的提交状态信息,则第二服务器上会存在第一业务事务的标识、业务事务日志以及提交状态信息等。对于这种情况,第二服务器将会作为存疑事务进行处理。
如果在同步处理事务执行成功后,第一服务器设置第二服务器的业务事务日志表中第一业务事务的提交状态信息为已提交过程中,与第二服务器发生切换,可能导致第一服务器来不及将第二服务器的业务事务日志表中第一业务事务的提交状态信息设置为已提交,在这种情况下,第二服务器的业务事日志表中就会记录有第一业务事务的标识、业务事务日志和未提交状态信息。在该情况下,由于上述步骤102和步骤103的先后顺序不做限定,所以第一服务器有可能已经将第一业务数据成功同步到第二服务器的数据库中。
如果在同步处理事务执行失败后,第一服务器删除第二服务器的业务事务日志表中关于第一业务事务的信息的过程,与第二服务器发生切换,则可能导致第一服务器来不及将第二服务器的业务事务日志表中关于第一业务事务的信息删除,在这种情况下,第二服务器的业务事务日志表中就会存储有第一业务事务的标识、业务事务日志和未提交状态信息。
如果在第一服务器执行同步事务的过程中,与第二服务器发生切换,由于同步第一业务数据需要一定时间(即所谓存在的时延),可能导致第一业务数据不能成功同步到第二服务器,则第一服务器也就不会将第一业务事务的标识写入第二服务器的第二业务事务记录表中,在该情况下,第二服务器的业务事务日志表中存储有第一业务事务的标识、业务事务日志和已提交状态信息。
由上述可见,在第一服务器和第二服务器发生切换之后,对第二服务器来说,可以根据其业务事务日志表和第二业务事务记录表进行比较,得到以下几种情况:
第一种情况:业务事务日志表中记录有第一业务事务的标识,且第二业务事务记录表中存储有第一业务事务的标识。该情况说明第一服务器在发生切换之前成功将第一业务数据同步到了第二服务器。此时,作为主服务器的第二服务器不需要对第一业务数据进行恢复处理。
第二种情况:业务事务日志表中记录有第一业务事务的标识、业务事务日志和未提交状态信息,而第二业务事务记录表中未存储第一业务事务的标识。该情况说明第一服务器在发生切换之前未能成功将第一业务数据同步给第二服务器,且由于业务事务日志表中记录的提交状态信息为未提交,因此,第二服务器无法判定第一服务器上的同步处理事务是否成功提交,所以无法确定第一服务器的数据库中是否一定存在第一业务数据,故无法确定是否需要重新执行第一业务事务。
在该情况下,作为主服务器的第二服务器可以将第一业务事务作为存疑事务,并将第一业务事务的标识和业务事务日志存储到存疑业务事务表中,以等待管理人员进行处理。例如,管理人员可以确定需要对该存疑业务进行重做,则第二服务器可以根据存疑业务事务表中记录的业务事务日志重新执行第一业务事务以产生第一业务数据,将该第一业务数据存储到本地数据库中从而保持与第一服务器的数据库的一致。又例如,管理人员可以确定忽略该存疑业务,即不需要重做该存疑业务,则第二服务器可以将存疑业务事务表中存储的该第一业务事务的标识和业务事务日志等信息删除,以防止重复对该存疑业务进行处理。
第三种情况:业务事务日志表中存储有第一业务事务的标识、业务事务日志和已提交状态信息,但第二业务事务记录表中不存在第一业务事务的标识。该情况说明第一服务器在切换之前成功提交了同步处理事务,第一服务器的数据库中已经存在第一业务数据,但是第一业务数据未能成功同步到第二服务器。针对该情况,作为主服务器的第二服务器可以根据记录的业务事务日志重新执行第一业务事务产生第一业务数据,将第一业务数据存储到本地的数据库中,从而保持与第一服务器的数据库的一致。
由上述可见,本实施例提供的业务数据同步方法,第一服务器在作为主服务器时,通过使用业务事务日志记录重新执行第一业务事务所需的业务事务日志,并将该业务事务日志写入第二服务器,在因故障第一服务器和第二服务器发生切换后,第二服务器在接管第一服务器的业务时,若发现有业务数据未能从切换前的第一服务器上同步过来,则可以根据业务事务日志重新执行相应的业务事务进行业务数据的自动恢复,进而解决了由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题。
图2为本发明一实施例提供的业务数据恢复方法的流程图。如图2所示,本实施例的方法包括:
步骤201、切换为主服务器的第二服务器判断本地的业务事务日志表中记录的业务事务的标识是否全部存在于本地的第二业务事务记录表中;如果判断结果为否,执行步骤202;如果判断结果为是,执行步骤204。
其中,第二业务事务记录表用于存储切换之前由作为主服务器的第一服务器成功同步到第二服务器的业务数据对应的业务事务的标识,业务事务日志表用于存储第一服务器在切换之前根据执行同步处理事务写入的业务事务的标识、写入的业务事务的业务事务日志和写入的业务事务的提交状态信息。
在本实施例中,所述切换是指主备服务器切换,在切换之前,第一服务器为主服务器,第二服务器为备用服务器,在切换之后,第一服务器为备用服务器,第二服务器为主服务器。本实施例主要描述的是发生切换之后,第二服务器作为主服务器时进行数据恢复的过程。
在第二服务器上设置有第二业务事务记录表和业务事务日志表,这两个表中的信息都是由切换之前作为主服务器的第一服务器写入的。具体的,第二业务事务记录表中存储的是由切换之前作为主服务器的第一服务器成功同步到第二服务器的业务数据对应的业务事务的标识。第一服务器在作为主服务器时,会执行同步处理事务并会记录同步处理事务过程中执行的业务事务的标识到第一业务事务记录表中,如果同步处理事务执行成功,第一服务器会执行同步事务,以向第二服务器同步该同步处理事务过程中产生的业务数据并将第一业务事务记录表中记录的业务事务的标识同步到第二服务器的第二业务事务记录表中。第一业务事务记录表设置在第一服务器上,用于存储第一服务器已经成功执行的业务事务的标识。
业务事务日志表中存储有业务事务的标识、业务事务日志和业务事务的提交状态信息。其中,业务事务的标识和业务事务日志是发生切换之前作为主服务器的第一服务器在执行同步处理事务过程中生成并写入业务事务日志表中的。另外,在业务事务执行过程中,第一服务器还会在业务事务日志表中设置业务事务的提交状态信息为未提交,并会在同步处理事务执行成功之后,将业务事务日志表中业务事务的提交状态信息设置为已提交。基于此,本实施例的业务事务日志表中的提交状态信息可能是未提交,有可能是已提交。如果业务事务日志表中记录的业务事务的提交状态信息为已提交,说明该业务事务对应的业务数据已经存在于第一服务器的数据库中。
由上述可见,在发生切换之后,作为主服务器的第二服务器通过比较第二业务事务记录表和业务事务日志表中记录的业务事务的标识,可以确定哪些业务事务的业务数据没有从第一服务器上成功同步过来。具体的,作为主服务器的第二服务器判断本地的业务事务日志表中记录的业务事务的标识是否全部存在于本地的第二业务事务记录表中。可选的,第二服务器可以逐一将业务事务日志表中记录的业务事务的标识与第二业务事务记录表中的业务事务的标识进行比较。如果判断结果为是,说明切换之前第一服务器已经成功将其上全部的业务数据同步到了第二服务器上,则切换之后作为主服务器的第二服务器可以直接接管业务,并开始继续对外提供服务,即执行步骤204。如果判断结果为否,作为主服务器的第二服务器获取存在于业务事务日志表中但不存在于第二业务事务记录表中的业务事务的标识,即执行步骤202。为便于描述,本实施例将存在于业务事务日志表中但不存在于第二业务事务记录表中的业务事务的标识称为第一业务事务的标识。
步骤202、第二服务器获取存在于业务事务日志表中但不存在于第二业务事务记录表中的第一业务事务的标识,转去执行步骤203。
步骤203、如果业务事务日志表中记录的与第一业务事务的标识对应的提交状态信息为已提交,第二服务器根据业务事务日志表中记录的与第一业务事务的标识对应的业务事务日志,重新执行第一业务数据以产生第一业务数据。第二服务器获取到第一业务事务的标识后,进一步判断业务事务日志表中记录的与第一业务事务的标识对应的提交状态信息是已提交还是未提交。如果是已提交,则说明第一服务器的数据库中已经存在第一业务事务的业务数据(即第一业务数据),故第二服务器根据业务事务日志表中记录的与第一业务事务的标识对应的业务事务日志,重新执行第一业务事务以产生第一业务数据,将第一业务数据存储在本地的数据库中,这样就可以保持与第一服务器的数据库的一致。
可选的,为了避免第二服务器发生重复根据业务事务日志表中记录的业务事务日志重新执行第一业务事务的操作,如果业务事务日志表中记录的与第一业务事务的标识对应的提交状态信息为已提交,第二服务器除了根据记录的业务事务日志重新执行第一业务事务之外,还可以删除业务事务日志表中的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息。可选的,如果第二服务器根据记录的业务事务日志重新执行第一业务事务失败,说明该第一业务事务存在问题,需要做进一步处理。
可选的,在本实施例中,第二服务器可以将根据业务事务日志重新执行第一业务事务、删除业务事务日志表中的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息作为一个整体的事务来执行,这样可以保证这些操作之间的原子性,使这些之间保持同步。本实施例将这里的整体的事务称为恢复事务,则第二服务器具体可以通过执行恢复事务,以完成根据业务事务日志表中记录的与第一业务事务的标识对应的业务事务日志,重新执行第一业务事务以产生第一业务数据,以及删除业务事务日志表中记录的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息的操作。
可选的,由上述实施例提供的发生切换之后,第二服务器根据其业务事务日志表和第二业务事务记录表进行比较得到的几种情况可知,第二服务器的第二业务事务记录表中不存在第一业务事务的标识,而第二服务器的业务事务日志表中记录的第一业务事务的提交状态信息是未提交。同样由上述实施例的描述可知,产生这种情况的原因可能有多种,在一些原因下,第一服务器的数据库中已经存储有第一业务数据,而在另一些原因下,第一服务器的数据库中不存在第一业务数据,因此,对于判断出第二业务事务记录表中不存在第一业务事务的标识,且业务事务日志表中记录的第一业务事务的提交状态信息为未提交的情况,第二服务器无法确定是否需要根据记录的业务事务日志重新执行第一业务事务,需要做进一步处理。
针对根据记录的业务事务日志重新执行第一业务事务失败的情况和无法确定是否需要根据记录的业务事务日志重新执行第一业务事务的情况,本实施例提供一种可选的解决方法。该解决方法包括:第二服务器可以将第一业务事务的标识和对应的业务事务日志存储到存疑业务事务表中,并将业务事务日志表中关于第一业务事务的标识、第一业务事务的标识对应的业务事务日志以及第一业务事务的标识对应的提交状态信息删除。其中,将第一业务事务的标识和对应的业务事务日志存储到存疑业务事务表中可以等待管理人员做进一步处理。具体的,在整个服务器系统正常运行以后,管理人员可以对存疑业务事务表中的存疑业务事务进行处理。由于存疑业务事务表中已经包含了自动重做业务事务所需的业务事务日志,因此管理人员只需要决定是重做还是忽略该存疑业务事务即可,操作非常简单。
可选的,在本实施例中,第二服务器可以将将第一业务事务的标识和对应的业务事务日志存储到存疑业务事务表中,并将业务事务日志表中关于第一业务事务的标识、第一业务事务的标识对应的业务事务日志以及第一业务事务的标识对应的提交状态信息删除作为一个整体的事务来执行,这样可以保证这些操作之间的原子性,使这些之间保持同步。本实施例将这里的整体的事务称为存疑处理事务,则第二服务器具体可以通过执行存疑处理事务,以完成将第一业务事务的标识和第一业务事务的标识对应的业务事务日志加入存疑业务事务表中,删除业务事务日志表中记录的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息的操作。
在此说明,在上述将第一业务事务的标识和对应的业务事务日志存储到存疑业务事务表中的过程中,如果失败,即未能成功将第一业务事务的标识和对应的业务事务日志存储到存疑业务事务表中,则第二服务器可以将第一业务事务的标识和对应的业务事务日志记录在数据库之外的其他文件中,以便于后续查询或进一步处理。这里的文件可以txt文本或Word文档。
在此说明,如果第二服务器的数据库中已经存在与第一业务事务对应的第二业务数据,则第二服务器在将第一业务事务的标识和第一业务事务的标识对应的业务事务日志加入存疑业务事务表中之后并在对第一业务事务进行处理之前,需要根据第一业务事务的标识判断第二服务器本地的数据库中是否存在与第一业务事务对应的第二业务数据,如果判断结果为存在,则将第二业务数据进行锁定。这样做可以在管理人员确定对第一业务事务的处理之前保护第一业务事务的相关数据。其中,第一业务事务对应的第二业务数据主要是是第一业务数据操作中的相关存储数据,这些数据有可能成为后续可能对第一业务事务进行的操作的对象。例如,缴费100元是第一业务事务,与该事务相关的会产生更新账户金额的动作,更新后的账户金额是需要同步的第一业务数据,而账户则是这里所述的需要锁定的第二业务数据,即在前面的操作没有完成前,其他任何人不能对该账户进行操作,避免混乱。。
可选的,第二服务器也可以在执行存疑处理事务的过程中完成锁存第二业务数据的操作。也就是说,第二服务器可以同时将将第一业务事务的标识和对应的业务事务日志存储到存疑业务事务表中,将业务事务日志表中关于第一业务事务的标识、第一业务事务的标识对应的业务事务日志以及第一业务事务的标识对应的提交状态信息删除,以及对第二业务数据进行锁定作为一个整体的事务来执行,以保证这些操作之间的原子性,避免发生重复执行相同操作的问题。
如果管理人员确定对第一业务事务进行重做,则第二服务器可以根据存疑业务事务表中记录的业务事务日志,重新执行第一业务事务以产生第一业务数据,并删除存疑业务事务表中的第一业务事务的标识和业务事务日志。在此说明,这里第二服务器根据记录的业务事务日志重新执行第一业务事务的操作与第一服务器执行同步处理事务的过程不同,不需要在重新执行第一业务事务的过程中向第一服务器写入该过程的业务事务日志。由于这里根据记录的业务事务日志重新执行第一业务事务的操作是在整个服务器系统正常运行之后执行的,因此,第二服务器已经将存疑业务事务表同步给了第一服务器,第一服务器上已经存在一个第一业务事务的存疑记录,如果第二服务器还在根据记录的业务事务日志重新执行第一业务事务的过程中将该过程对应的业务事务日志写入第一服务器,则在重新执行第一业务事务产生的第一业务数据尚未完成同步时发生切换,即第一服务器重新切换为主服务器,第一服务器可能也会将该第一业务事务作为存疑业务事务写入存疑业务事务记录表中,这样第一服务器的存疑业务事务记录表中就会存在两条相同的存疑记录,为避免该问题,本实施例的第二服务器在根据记录的业务事务日志重新执行第一业务事务的过程中不向第一服务器写入该过程对应的业务事务日志。
进一步说明,对于同时存在于业务事务日志表和第二业务事务记录表中的业务事务的标识,第二服务器会将这些业务事务的标识以及所对应的业务事务日志和提交状态信息从业务事务日志表中删除,并且也会将这些业务事务的标识从第二业务事务记录表中删除。换句话说,第二服务器会在实现与第一服务器的数据库的一致之后,将本地的第二业务事务记录表和业务事务日志表删除。因为在完成了业务数据的恢复处理后,这两张表的内容就没有用了,应该给予清除以避免遗留产生副作用。
进一步,第二服务器根据存疑业务事务表中记录的业务事务日志,重新执行第一业务事务也可能成功,也可能失败。如果失败,则第二服务器可以将有关信息,例如第一业务事务的标识信息、业务事务日志以及重新执行失败结果等信息写入指定的文件中进行记录,以便于后续进行查看。
步骤204、第二服务器接管业务,并继续对外提供服务。
由上述可见,本实施例提供的业务数据恢复方法,与上述业务数据同步方法相配合,第二服务器从备用服务器切换为主服务器之后,根据本地的第二业务事务记录表和业务事务日志表判断在切换之前第一服务器是否有未能成功同步过来的业务数据,并在判断出有未能成功同步的业务数据后,根据业务事务日志表中记载的业务事务日志重新执行相应的业务事务产生业务数据,实现了与第一服务器的数据库的一致,进而解决了由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题,有利于整个服务器系统服务质量的提高。
在此说明,本发明上述实施例提供的业务数据同步方法和业务数据恢复方法可以适用于任何业务数据,但是尤其适用于对数据同步可靠性要求较高的一些关键业务数据,例如缴费业务产生的缴费数据等。
图3为本发明一实施例提供的业务数据同步装置的结构示意图。本实施例的业务数据同步装置设置在作为主服务器的第一服务器中实现。如图3所示,本实施例的装置包括:同步处理模块31、设置模块32和同步模块33。
同步处理模块31,用于执行同步处理事务,该同步处理事务包括:执行第一业务事务产生第一业务数据、在第一服务器的第一业务事务记录表中记录第一业务事务的标识、生成业务事务日志以及将第一业务事务的标识和业务事务日志写入第二服务器的业务事务日志表中并在业务事务日志表中设置第一业务事务的提交状态信息为未提交,以供第二服务器在切换为主服务器之后,根据第二服务器的第二业务事务记录表和业务事务日志表实现与第一服务器的数据库的同步。其中,业务事务日志包括重新执行第一业务事务所需的信息,第二业务事务记录表用于存储由第一服务器成功同步到第二服务器的业务数据对应的业务事务的标识。第一服务器和第二服务器互为备份。
设置模块32,与同步处理模块31连接,用于在同步处理模块31执行同步处理事务成功后,设置业务事务日志表中第一业务事务的提交状态信息为已提交。
同步模块33,用于执行同步事务,所述同步事务包括:向所述第二服务器同步所述第一业务数据并将所述第一业务事务记录表中记录的所述第一业务事务的标识写入所述第二业务事务记录表中。可选的,同步模块33与同步处理模块31连接,用于在同步处理模块31执行同步处理事务成功后,执行同步事务。
可选的,本实施例的业务数据同步装置还包括:删除模块34。删除模块34,与同步处理模块31连接,用于在同步处理模块31执行同步处理事务失败后,删除业务事务日志表中的第一业务事务的标识、业务事务日志和提交状态信息。
本实施例提供的业务数据同步装置的各功能模块可用于执行图1所示实施例提供的业务数据同步方法中的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例提供的业务数据同步装置,在其所在的第一服务器作为主服务器时,通过使用业务事务日志记录重新执行第一业务事务所需的业务事务日志,并将该业务事务日志写入第二服务器,使得在因故障第一服务器和第二服务器发生切换后,第二服务器在接管第一服务器的业务时,若发现有业务数据未能从切换前的第一服务器上同步过来,可以根据业务事务日志重新执行相应的业务事务进行业务数据的自动恢复,进而解决了由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题。
图4为本发明一实施例提供的业务数据恢复装置的结构示意图。本实施例的业务数据恢复装置设置在切换为主服务器的第二服务器中实现。如图4所示,本实施例的装置包括:判断模块41、获取模块42和恢复处理模块43。
其中,判断模块41,用于判断第二服务器的业务事务日志表中记录的业务事务的标识是否全部存在于第二服务器的第二业务事务记录表中。其中,第二业务事务记录表用于存储由切换之前作为主服务器的第一服务器成功同步到第二服务器的业务数据对应的业务事务的标识。业务事务日志表用于存储第一服务器在切换之前根据执行同步处理事务写入的业务事务的标识、业务事务日志和提交状态信息。
获取模块42,与判断模块41连接,用于在判断模块41的判断结果为否时,获取存在于业务事务日志表中但不存在于第二业务事务记录表中的第一业务事务的标识。
恢复处理模块43,与获取模块42连接,用于在业务事务日志表中记录的与第一业务事务的标识对应的提交状态信息为已提交时,根据业务事务日志表中记录的与第一业务事务的标识对应的业务事务日志,重新执行第一业务事务以产生第一业务数据。可选的,恢复处理模块43可以根据获取模块42获取的第一业务事务的标识判断业务事务日志表中记录的与第一业务事务的标识对应的提交状态信息。
在一可选实施方式中,恢复处理模块43还用于在业务事务日志表中记录的与第一业务事务的标识对应的提交状态信息为已提交时,删除业务事务日志表中记录的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息。
可选的,恢复处理模块43具体用于执行恢复事务,以完成根据业务事务日志表中记录的与第一业务事务的标识对应的业务事务日志,重新执行第一业务事务以产生第一业务数据,以及删除业务事务日志表中记录的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息的操作。也就是说,恢复事务包括:根据业务事务日志表中记录的与第一业务事务的标识对应的业务事务日志,重新执行第一业务事务以产生第一业务数据,以及删除业务事务日志表中记录的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息。
在一可选实施方式中,如图5所示,本实施例的业务数据恢复装置还包括:存疑处理模块44。存疑处理模块44,与恢复处理模块43连接,用于在业务事务日志表中记录的与第一业务事务的标识对应的提交状态信息为未提交时,或者,在恢复处理模块43根据业务事务日志重新执行第一业务事务失败时,将第一业务事务的标识和第一业务事务的标识对应的业务事务日志加入存疑业务事务表中,删除业务事务日志表中记录的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息。可选的,存疑处理模块44还可以与获取模块42连接,用于根据获取模块42获取的第一业务事务的标识判断业务事务日志表中记录的与第一业务事务的标识对应的提交状态信息。
可选的,存疑处理模块44具体可用于执行存疑处理事务,以完成将第一业务事务的标识和第一业务事务的标识对应的业务事务日志加入存疑业务事务表中,删除业务事务日志表中记录的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息的操作。也就是说,存疑处理事务包括:将第一业务事务的标识和第一业务事务的标识对应的业务事务日志加入存疑业务事务表中,以及删除业务事务日志表中记录的第一业务事务的标识、第一业务事务的标识对应的业务事务日志和第一业务事务的标识对应的提交状态信息。
在一可选实施方式中,存疑处理模块44还用于在将第一业务事务的标识和第一业务事务的标识对应的业务事务日志加入存疑业务事务表中之后且在对第一业务事务进行处理之前,判断第二服务器的数据库中是否存在与第一业务事务对应的第二业务数据,如果判断结果为存在,将第二业务数据进行锁定。
在一可选实施方式中,存疑处理模块44还用于根据存疑业务事务表中记录的第一业务事务的标识对应的业务事务日志,重新执行第一业务事务以产生第一业务数据,删除存疑业务事务表中的第一业务事务的标识和第一业务事务的标识对应的业务事务日志。
本实施例提供的业务数据恢复装置的各功能模块可用于执行图2所示实施例提供的业务数据恢复方法中的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例提供的业务数据恢复装置,与本发明上述实施例提供的业务数据同步装置相配合,在其所在的第二服务器从备用服务器切换为主服务器之后,根据本地的第二业务事务记录表和业务事务日志表判断在切换之前第一服务器是否有未能成功同步过来的业务数据,并在判断出有未能成功同步的业务数据后,根据业务事务日志表中记载的业务事务日志重新执行相应的业务事务产生业务数据,实现了与第一服务器的数据库的一致,进而解决了由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题,有利于整个服务器系统服务质量的提高。
本发明一实施例提供一种网络设备,包括本发明图3所示实施例提供的业务数据同步装置。关于业务数据同步装置的结构和工作原理可参见上述装置实施例和相应的方法实施例,在此不再赘述。
本实施例的网络设备可以是各种应用场景中需要进行业务数据同步的主服务器。
本实施例的网络设备同样可以执行图1所示实施例提供的业务数据同步方法的流程,因此,可以解决由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题,有利于整个服务器系统服务质量的提高。
本发明另一实施例提供一种网络设备,包括图4或图5所示实施例提供的业务数据恢复装置。关于业务数据恢复装置的结构和工作原理可参见上述装置实施例和相应方法实施例的描述,在此不再赘述。
本实施例的网络可以是各种数据同步场景中从备用状态换为主用状态的服务器。
本实施例的网络设备同样可以执行图2所示实施例提供的业务数据恢复方法的流程,因此,可以解决由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题,有利于整个服务器系统服务质量的提高。
本发明又一实施例提供一种网络设备,包括图3所示实施例提供的业务数据同步装置,以及图4或图5所示实施例提供的业务数据恢复装置。关于业务数据同步装置和业务数据恢复装置的工作原理和结构在此不再赘述。
本实施例的网络设备可以是各种应用场景中需要进行业务数据同步的服务器,其状态可以是主用状态,也可以是备用状态。
本实施例的网络设备同样可以执行图1所示实施例提供的业务数据同步方法以及图2所示实施例提供的业务数据恢复方法的流程,因此,可以解决由于数据同步过程存在时延导致在主备服务器切换过程中来不及同步引起的切换前后主备服务器的数据库不完全一致的问题,有利于整个服务器系统服务质量的提高。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (19)

1.一种业务数据同步方法,其特征在于,包括:
作为主服务器的第一服务器执行同步处理事务;所述同步处理事务包括:执行第一业务事务产生第一业务数据、在本地第一业务事务记录表中记录所述第一业务事务的标识、生成业务事务日志以及将所述第一业务事务的标识和所述业务事务日志写入第二服务器的业务事务日志表中并在所述业务事务日志表中设置所述第一业务事务的提交状态信息为未提交,以供所述第二服务器在切换为主服务器之后,根据所述第二服务器的第二业务事务记录表和所述业务事务日志表实现与所述第一服务器的数据库的同步,所述业务事务日志包括重新执行所述第一业务事务所需的信息,所述第二业务事务记录表用于存储由所述第一服务器成功同步到所述第二服务器的业务数据对应的业务事务的标识;
如果所述同步处理事务执行成功,所述第一服务器设置所述业务事务日志表中所述第一业务事务的提交状态信息为已提交;
所述第一服务器执行同步事务,所述同步事务包括:向所述第二服务器同步所述第一业务数据并将所述第一业务事务记录表中记录的所述第一业务事务的标识写入所述第二业务事务记录表中。
2.根据权利要求1所述的业务数据同步方法,其特征在于,还包括:
如果所述同步处理事务执行失败,所述第一服务器删除所述业务事务日志表中的所述第一业务事务的标识、所述业务事务日志和所述提交状态信息。
3.一种业务数据恢复方法,其特征在于,包括:
切换为主服务器的第二服务器判断本地的业务事务日志表中记录的业务事务的标识是否全部存在于本地的第二业务事务记录表中;所述第二业务事务记录表用于存储由切换之前作为主服务器的第一服务器成功同步到所述第二服务器的业务数据对应的业务事务的标识;所述业务事务日志表用于存储所述第一服务器在切换之前根据执行同步处理事务写入的业务事务的标识、业务事务日志和提交状态信息;
如果判断结果为否,所述第二服务器获取存在于所述业务事务日志表中但不存在于所述第二业务事务记录表中的第一业务事务的标识;
如果所述业务事务日志表中记录的与所述第一业务事务的标识对应的提交状态信息为已提交,所述第二服务器根据所述业务事务日志表中记录的与所述第一业务事务的标识对应的业务事务日志,重新执行所述第一业务事务以产生第一业务数据。
4.根据权利要求3所述的业务数据恢复方法,其特征在于,还包括:
如果所述业务事务日志表中记录的与所述第一业务事务的标识对应的提交状态信息为已提交,所述第二服务器删除所述业务事务日志表中记录的所述第一业务事务的标识、所述第一业务事务的标识对应的业务事务日志和所述第一业务事务的标识对应的提交状态信息。
5.根据权利要求4所述的业务数据恢复方法,其特征在于,所述第二服务器执行恢复事务,以完成根据所述业务事务日志表中记录的与所述第一业务事务的标识对应的业务事务日志,重新执行所述第一业务事务以产生第一业务数据,以及删除所述业务事务日志表中记录的所述第一业务事务的标识、所述第一业务事务的标识对应的业务事务日志和所述第一业务事务的标识对应的提交状态信息的操作。
6.根据权利要求3或4或5所述的业务数据恢复方法,其特征在于,还包括:
如果所述业务事务日志表中记录的与所述第一业务事务的标识对应的提交状态信息为未提交,或者,如果根据所述业务事务日志重新执行所述第一业务事务失败,所述第二服务器将所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志加入存疑业务事务表中,删除所述业务事务日志表中记录的所述第一业务事务的标识、所述第一业务事务的标识对应的业务事务日志和所述第一业务事务的标识对应的提交状态信息。
7.根据权利要求6所述的业务数据恢复方法,其特征在于,所述第二服务器执行存疑处理事务,以完成将所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志加入存疑业务事务表中,删除所述业务事务日志表中记录的所述第一业务事务的标识、所述第一业务事务的标识对应的业务事务日志和所述第一业务事务的标识对应的提交状态信息的操作。
8.根据权利要求6所述的业务数据恢复方法,其特征在于,所述第二服务器将所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志加入存疑业务事务表中之后并在对所述第一业务事务进行处理之前包括:
所述第二服务器判断所述第二服务器的数据库中是否存在与所述第一业务事务对应的第二业务数据,如果判断结果为存在,所述第二服务器将所述第二业务数据进行锁定。
9.根据权利要求6所述的业务数据恢复方法,其特征在于,所述第二服务器将所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志加入存疑业务事务表中之后包括:
根据所述存疑业务事务表中记录的所述第一业务事务的标识对应的业务事务日志,重新执行所述第一业务事务以产生所述第一业务数据,删除所述存疑业务事务表中的所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志。
10.一种业务数据同步装置,其特征在于,设置于作为主服务器的第一服务器中,所述装置包括:
同步处理模块,用于执行同步处理事务,所述同步处理事务包括:执行第一业务事务产生第一业务数据、在所述第一服务器的第一业务事务记录表中记录所述第一业务事务的标识、生成业务事务日志以及将所述第一业务事务的标识和所述业务事务日志写入第二服务器的业务事务日志表中并在所述业务事务日志表中设置所述第一业务事务的提交状态信息为未提交,以供所述第二服务器在切换为主服务器之后,根据所述第二服务器的第二业务事务记录表和所述业务事务日志表实现与所述第一服务器的数据库的同步,所述业务事务日志包括重新执行所述第一业务事务所需的信息,所述第二业务事务记录表用于存储由所述第一服务器成功同步到所述第二服务器的业务数据对应的业务事务的标识;
设置模块,用于在所述同步处理事务执行成功后,设置所述业务事务日志表中所述第一业务事务的提交状态信息为已提交;
同步模块,用于执行同步事务,所述同步事务包括:向所述第二服务器同步所述第一业务数据并将所述第一业务事务记录表中记录的所述第一业务事务的标识写入所述第二业务事务记录表中。
11.根据权利要求10所述的业务数据同步装置,其特征在于,还包括:
删除模块,用于在所述同步处理事务执行失败后,删除所述业务事务日志表中的所述第一业务事务的标识、所述业务事务日志和所述提交状态信息。
12.一种业务数据恢复装置,其特征在于,设置于切换为主服务器的第二服务器中,所述装置包括:
判断模块,用于判断所述第二服务器的业务事务日志表中记录的业务事务的标识是否全部存在于所述第二服务器的第二业务事务记录表中;所述第二业务事务记录表用于存储由切换之前作为主服务器的第一服务器成功同步到所述第二服务器的业务数据对应的业务事务的标识;所述业务事务日志表用于存储所述第一服务器在切换之前根据执行同步处理事务写入的业务事务的标识、业务事务日志和提交状态信息;
获取模块,用于在所述判断模块的判断结果为否时,获取存在于所述业务事务日志表中但不存在于所述第二业务事务记录表中的第一业务事务的标识;
恢复处理模块,用于在所述业务事务日志表中记录的与所述第一业务事务的标识对应的提交状态信息为已提交时,根据所述业务事务日志表中记录的与所述第一业务事务的标识对应的业务事务日志,重新执行所述第一业务事务以产生第一业务数据。
13.根据权利要求12所述的业务数据恢复装置,其特征在于,所述恢复处理模块还用于在所述业务事务日志表中记录的与所述第一业务事务的标识对应的提交状态信息为已提交时,删除所述业务事务日志表中记录的所述第一业务事务的标识、所述第一业务事务的标识对应的业务事务日志和所述第一业务事务的标识对应的提交状态信息。
14.根据权利要求13所述的业务数据恢复装置,其特征在于,所述恢复处理模块具体用于执行恢复事务,以完成根据所述业务事务日志表中记录的与所述第一业务事务的标识对应的业务事务日志,重新执行所述第一业务事务以产生第一业务数据,以及删除所述业务事务日志表中记录的所述第一业务事务的标识、所述第一业务事务的标识对应的业务事务日志和所述第一业务事务的标识对应的提交状态信息的操作。
15.根据权利要求12或13或14所述的业务数据恢复装置,其特征在于,还包括:
存疑处理模块,用于在所述业务事务日志表中记录的与所述第一业务事务的标识对应的提交状态信息为未提交时,或者,在所述恢复处理模块根据所述业务事务日志重新执行所述第一业务事务失败时,将所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志加入存疑业务事务表中,删除所述业务事务日志表中记录的所述第一业务事务的标识、所述第一业务事务的标识对应的业务事务日志和所述第一业务事务的标识对应的提交状态信息。
16.根据权利要求15所述的业务数据恢复装置,其特征在于,所述存疑处理模块具体用于执行存疑处理事务,以完成将所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志加入存疑业务事务表中,删除所述业务事务日志表中记录的所述第一业务事务的标识、所述第一业务事务的标识对应的业务事务日志和所述第一业务事务的标识对应的提交状态信息的操作。
17.根据权利要求15所述的业务数据恢复装置,其特征在于,所述存疑处理模块还用于在将所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志加入存疑业务事务表中之后且在对所述第一业务事务进行处理之前,判断所述第二服务器的数据库中是否存在与所述第一业务事务对应的第二业务数据,如果判断结果为存在,将所述第二业务数据进行锁定。
18.根据权利要求15所述的业务数据恢复装置,其特征在于,所述存疑处理模块还用于根据所述存疑业务事务表中记录的所述第一业务事务的标识对应的业务事务日志,重新执行所述第一业务事务以产生所述第一业务数据,删除所述存疑业务事务表中的所述第一业务事务的标识和所述第一业务事务的标识对应的业务事务日志。
19.一种网络设备,其特征在于,包括权利要求10或11所述的业务数据同步装置,和/或,权利要求12-18任一项所述的业务数据恢复装置。
CN201210361113.5A 2012-09-25 2012-09-25 业务数据同步方法、恢复方法及装置和网络设备 Active CN102891849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210361113.5A CN102891849B (zh) 2012-09-25 2012-09-25 业务数据同步方法、恢复方法及装置和网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210361113.5A CN102891849B (zh) 2012-09-25 2012-09-25 业务数据同步方法、恢复方法及装置和网络设备

Publications (2)

Publication Number Publication Date
CN102891849A CN102891849A (zh) 2013-01-23
CN102891849B true CN102891849B (zh) 2015-07-22

Family

ID=47535216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210361113.5A Active CN102891849B (zh) 2012-09-25 2012-09-25 业务数据同步方法、恢复方法及装置和网络设备

Country Status (1)

Country Link
CN (1) CN102891849B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103199978A (zh) * 2013-03-25 2013-07-10 天脉聚源(北京)传媒科技有限公司 一种同步日志的方法及装置
CN103488548B (zh) * 2013-09-24 2016-06-29 长沙裕邦软件开发有限公司 一种平台数据删除后通过数据银行恢复的方法及系统
CN104618127B (zh) * 2013-11-01 2019-01-29 深圳市腾讯计算机系统有限公司 主备存储节点切换方法和系统
CN103647834B (zh) * 2013-12-16 2017-03-22 上海证券交易所 一种用于处理多阶段分布式任务调度的系统及方法
CN105446827B (zh) * 2014-08-08 2018-12-14 阿里巴巴集团控股有限公司 一种数据库故障时的数据存储方法和设备
CN105893386B (zh) * 2015-01-04 2021-08-06 伊姆西Ip控股有限责任公司 用于在同步复制系统中处理事务的方法和装置
CN105989503A (zh) * 2015-02-05 2016-10-05 中国移动通信集团云南有限公司 在线交易系统数据一致性的方法及系统
US20170091254A1 (en) * 2015-09-24 2017-03-30 Kshitij A. Doshi Making volatile isolation transactions failure-atomic in non-volatile memory
CN106802892B (zh) * 2015-11-26 2021-12-28 阿里巴巴集团控股有限公司 用于主备数据一致性校验的方法和设备
CN107015999B (zh) * 2016-01-28 2020-11-03 创新先进技术有限公司 一种基于分布式环境的信息发送方法及装置
CN107870830B (zh) * 2016-09-23 2021-07-20 北京京东尚科信息技术有限公司 一种提升数据库可用性的方法和装置
CN107066480B (zh) * 2016-12-20 2020-08-11 创新先进技术有限公司 主备数据库的管理方法、系统及其设备
CN108509462B (zh) 2017-02-28 2021-01-29 华为技术有限公司 一种同步活动事务表的方法及装置
CN106997557B (zh) * 2017-03-23 2021-06-29 深圳市创梦天地科技有限公司 订单信息采集方法及装置
CN107480009A (zh) * 2017-08-18 2017-12-15 北京中电普华信息技术有限公司 一种事务恢复方法及装置
CN110019520B (zh) * 2017-11-29 2022-09-23 财付通支付科技有限公司 业务执行方法、系统及装置
CN108647112B (zh) * 2018-03-16 2022-03-01 创新先进技术有限公司 数据备份的方法、装置及分布式事务处理系统
CN109614263B (zh) * 2018-10-29 2020-07-03 阿里巴巴集团控股有限公司 一种容灾数据处理方法、装置及系统
CN109656936A (zh) * 2018-11-30 2019-04-19 金蝶软件(中国)有限公司 数据同步方法、装置、计算机设备和存储介质
CN112311883B (zh) * 2020-10-30 2023-04-07 杭州安恒信息安全技术有限公司 一种数据同步方法及系统
CN112650562B (zh) * 2020-12-18 2024-03-08 平安科技(深圳)有限公司 数据处理方法、装置、设备及可读存储介质
CN113010398A (zh) * 2021-03-18 2021-06-22 建信金融科技有限责任公司 一种业务日志模型、业务执行方法、装置、电子设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316184A (zh) * 2007-06-01 2008-12-03 华为技术有限公司 容灾切换方法、系统、装置
CN101706795A (zh) * 2009-11-30 2010-05-12 上海世范软件技术有限公司 主备服务器上数据库数据同步方法
CN102255958A (zh) * 2011-06-27 2011-11-23 北京星网锐捷网络技术有限公司 数据同步方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316184A (zh) * 2007-06-01 2008-12-03 华为技术有限公司 容灾切换方法、系统、装置
CN101706795A (zh) * 2009-11-30 2010-05-12 上海世范软件技术有限公司 主备服务器上数据库数据同步方法
CN102255958A (zh) * 2011-06-27 2011-11-23 北京星网锐捷网络技术有限公司 数据同步方法及系统

Also Published As

Publication number Publication date
CN102891849A (zh) 2013-01-23

Similar Documents

Publication Publication Date Title
CN102891849B (zh) 业务数据同步方法、恢复方法及装置和网络设备
CN101405701B (zh) 用于拷贝数据的计算机实现的方法及装置
JP5264077B2 (ja) 地理的分散型クラスタ
CN103226502B (zh) 一种数据灾备控制系统及数据恢复方法
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
CN105069160A (zh) 一种基于自主可控数据库的高可用性方法及构架
CN105574187B (zh) 一种异构数据库复制事务一致性保障方法及系统
CN106776121B (zh) 一种数据灾备装置、系统及方法
CN101809558A (zh) 远程异步数据复制系统和方法
CN111078667B (zh) 一种数据迁移的方法以及相关装置
CN103077242A (zh) 一种实现数据库服务器双机热备的方法
CN102955720A (zh) 一种提高ext文件系统稳定性的方法
CN110515557B (zh) 一种集群管理方法、装置、设备及可读存储介质
CN103345470A (zh) 一种数据库容灾方法、系统及服务器
CN102368267A (zh) 一种维护分布式系统中副本一致性的方法
CN109189860A (zh) 一种基于Kubernetes系统的MySQL主备增量同步方法
CN105302667A (zh) 基于集群架构的高可靠性数据备份与恢复方法
CN102710752A (zh) 灾备存储系统
CN104750755A (zh) 一种数据库主备切换后的数据回补方法及系统
CN108762982B (zh) 一种数据库恢复方法、装置及系统
JPWO2008129620A1 (ja) 完全二重化システム、システム制御方法およびシステム制御プログラム
KR101605455B1 (ko) 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템
CN103544081B (zh) 双元数据服务器的管理方法和装置
CN108460163A (zh) K-db数据库数据同步方法、装置、设备及存储介质
CN104991739A (zh) 元数据服务器失效接替中精确一次执行语义的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201225

Address after: 200030 full floor, 4 / F, 190 Guyi Road, Xuhui District, Shanghai

Patentee after: Shanghai Ruishan Network Co., Ltd

Address before: 12 / F, block a, East Tower, Zhongyi pengao Hotel, 29 Fuxing Road, Haidian District, Beijing 100036

Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd.

TR01 Transfer of patent right