CN110442648A - 数据同步方法和装置 - Google Patents

数据同步方法和装置 Download PDF

Info

Publication number
CN110442648A
CN110442648A CN201910699774.0A CN201910699774A CN110442648A CN 110442648 A CN110442648 A CN 110442648A CN 201910699774 A CN201910699774 A CN 201910699774A CN 110442648 A CN110442648 A CN 110442648A
Authority
CN
China
Prior art keywords
data
database
interim
synchronous
main
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.)
Granted
Application number
CN201910699774.0A
Other languages
English (en)
Other versions
CN110442648B (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910699774.0A priority Critical patent/CN110442648B/zh
Publication of CN110442648A publication Critical patent/CN110442648A/zh
Application granted granted Critical
Publication of CN110442648B publication Critical patent/CN110442648B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本公开提供了一种数据同步方法,该方法包括:获取第一临时表,第一临时表中存储有在预设时间段内针对第一数据主表的修改记录;根据第一临时表中存储的修改记录对第一数据备表进行数据同步;确定第一数据备表是否已成功完成数据同步;如果确定第一数据备表未成功完成数据同步,则获取第二临时表,第二临时表中存储有在预设时间段内针对第一数据主表所做的操作;以及针对第一数据备表执行第二临时表中记录的操作,以实现对第一数据备表的数据同步。本公开还提供了一种数据同步装置、一种电子设备以及一种计算机可读存储介质。

Description

数据同步方法和装置
技术领域
本公开涉及计算机技术领域,特别是涉及一种数据同步方法和装置。
背景技术
为了实现数据安全,通常会对数据进行备份。例如可以采用主备数据库对数据备份。传统的主备数据库都是一个作为主数据库使用,另一个作为备用数据库使用。一方面这种模式会导致资源浪费,另一方面这种模式会导致数据丢失。
发明内容
本公开的一个方面提供了一种数据同步方法,用于对第一数据库和第二数据库进行数据同步,所述第一数据库通过第一数据主表存储数据,所述第二数据库通过第二数据主表存储数据,且所述第一数据库通过第二数据备表为所述第二数据主表备份数据,所述第二数据库通过第一数据备表为所述第一数据主表备份数据;所述方法包括:获取第一临时表,所述第一临时表中存储有在预设时间段内针对所述第一数据主表的修改记录;根据所述第一临时表中存储的所述修改记录对所述第一数据备表进行数据同步;确定所述第一数据备表是否已成功完成数据同步;如果确定所述第一数据备表未成功完成数据同步,则获取第二临时表,所述第二临时表中存储有在所述预设时间段内针对所述第一数据主表所做的操作;以及针对所述第一数据备表执行所述第二临时表中记录的操作,以实现对所述第一数据备表的数据同步。
可选地,所述确定所述第一数据备表是否已成功完成数据同步,包括:响应于所述第一数据库宕机,确定所述第一数据备表是否仍处于冻结状态;以及如果确定所述第一数据备表仍处于所述冻结状态,则确定所述第一数据备表未成功完成数据同步。
可选地,所述确定所述第一数据备表是否仍处于冻结状态,包括:确定所述第一数据备表的状态值是否为1;以及如果确定所述第一数据备表的状态值为1,则确定所述第一数据备表仍处于所述冻结状态。
可选地,所述第一数据库和所述第二数据库互为主备数据库。
可选地,所述修改记录包括修改所使用的主键信息和修改所针对的所述第一数据主表的表名。
本公开的另一个方面提供了一种数据同步装置,用于对第一数据库和第二数据库进行数据同步,所述第一数据库通过第一数据主表存储数据,所述第二数据库通过第二数据主表存储数据,且所述第一数据库通过第二数据备表为所述第二数据主表备份数据,所述第二数据库通过第一数据备表为所述第一数据主表备份数据;所述装置包括:第一获取模块,用于获取第一临时表,所述第一临时表中存储有在预设时间段内针对所述第一数据主表的修改记录;第一同步模块,用于根据所述第一临时表中存储的所述修改记录对所述第一数据备表进行数据同步;确定模块,用于确定所述第一数据备表是否已成功完成数据同步;第二获取模块,用于在确定所述第一数据备表未成功完成数据同步的情况下,获取第二临时表,所述第二临时表中存储有在所述预设时间段内针对所述第一数据主表所做的操作;以及第二同步模块,用于针对所述第一数据备表执行所述第二临时表中记录的操作,以实现对所述第一数据备表的数据同步。
可选地,所述确定模块包括:第一确定单元,用于响应于所述第一数据库宕机,确定所述第一数据备表是否仍处于冻结状态;以及第二确定单元,用于在确定所述第一数据备表仍处于所述冻结状态的情况下,确定所述第一数据备表未成功完成数据同步。
可选地,所述第一确定单元包括:第一确定子单元,用于确定所述第一数据备表的状态值是否为1;以及第二确定子单元,用于在确定所述第一数据备表的状态值为1的情况下,确定所述第一数据备表仍处于所述冻结状态。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现根据本公开实施例的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现根据本公开实施例的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现根据本公开实施例的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的适于数据同步方法和装置的系统架构;
图2示意性示出了根据本公开实施例的数据同步方法的流程图;
图3示意性示出了根据本公开实施例的确定第一数据备表是否已成功完成数据同步的流程图;
图4示意性示出了根据本公开实施例的数据同步装置的框图;以及
图5示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种数据同步方法方法以及能够应用该方法的数据同步装置。该方法用于对第一数据库和第二数据库进行数据同步。第一数据库例如可以通过第一数据主表存储数据。第二数据库例如可以通过第二数据主表存储数据。且第一数据库例如可以通过第二数据备表为第二数据主表备份数据。第二数据库例如可以通过第一数据备表为第一数据主表备份数据。该方法例如可以包括获取第一临时表,第一临时表中存储有在预设时间段内针对第一数据主表的修改记录。根据第一临时表中存储的修改记录对第一数据备表进行数据同步。确定第一数据备表是否已成功完成数据同步。如果确定第一数据备表未成功完成数据同步,则获取第二临时表,第二临时表中存储有在预设时间段内针对第一数据主表所做的操作。针对第一数据备表执行第二临时表中记录的操作,以实现对第一数据备表的数据同步。
图1示意性示出了根据本公开实施例的适于数据同步方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该系统架构包括:第一数据库和第二数据库,第一应用服务器和第二应用服务器,第一同步服务器和第二同步服务器,第一日志服务器和第二日志服务器。
具体地,第一应用服务器用于对第一数据库进行数据查询、增加、删除、修改等操作。第一同步服务器用于将第一数据库中的数据同步到第二数据库中,以实现对第一数据库的数据备份。第一日志服务器用于记录第一应用服务器的操作日志。
同理,第二应用服务器用于对第二数据库进行数据查询、增加、删除、修改等操作。第二同步服务器用于将第二数据库中的数据同步到第一数据库中,以实现对第二数据库的数据备份。第二日志服务器用于记录第二应用服务器的操作日志。
应该理解,在本公开实施例中,第一数据库和第二数据库可以互为备用数据库。并且,每个数据库在同一时刻既充当主数据库的角色,又充当备用数据库的角色,可以避免资源浪费。此外,这两个数据库作为备用数据库,如果在对备用数据库进行数据同步的过程中,主数据库由于宕机等故障而挂机时,还可以对备用数据库进行数据回补,从而将数据同步过程中丢失的数据找回。
以下将参考附图并结合具体实施例详细阐述本公开。
图2示意性示出了根据本公开实施例的数据同步方法的流程图。
该方法例如可以用于对第一数据库和第二数据库进行数据同步。具体地,第一数据库例如可以通过第一数据主表存储数据。第二数据库例如可以通过第二数据主表存储数据。且第一数据库例如可以通过第二数据备表为第二数据主表备份数据。第二数据库例如可以通过第一数据备表为第一数据主表备份数据。因此,应该理解,在本公开实施例中,第一数据库和第二数据库例如可以互为主、备数据库。在互为主、备数据库的同时,两个数据库又可以作为其他数据系统的主数据库使用。
如图2所示,在本公开实施例中,该方法例如可以包括操作S210~S250。
在操作S210,获取第一临时表,第一临时表中存储有在预设时间段内针对第一数据主表的修改记录。
应该理解,在本公开实施例中,例如可以实时获取第一临时表。因此,上述预设时间段可以是一个极短的时间段,例如10ms。。
需要说明的是,对第一数据主表的修改记录例如可以包括但不限于以下记录:增加、删除、修改等更新记录,在此不做限定。
更具体地,作为一种可选的实施例,对第一数据主表的修改记录例如可以包括更新所使用的主键信息和更新所针对的第一数据主表的表名等。
在操作S220,根据第一临时表中存储的修改记录对第一数据备表进行数据同步。
例如,如果应用服务器在第一数据库的主表即第一数据主表中增加了一条“XXX”数据,则第一临时表会记录这条信息。因此,在数据同步过程中,可以根据这条记录,将“XXX”写入第一数据库的备用表即第一数据备表中,从而实现对第一数据备表的数据同步。
在操作S230,确定第一数据备表是否已成功完成数据同步。
应该理解,在对第一数据备表进行数据同步的过程中,很可能因为网络闪断或者第一数据库宕机等原因导致第一数据备表无法成功完成数据同步。如果第一数据备表无法成功完成数据同步,则会导致第一数据备表中的数据与第一数据主表中的数据不一致,即导致第一数据备表中丢失数据,使得数据不全,从而给数据安全带来隐患。为了解决这一问题,本公开实施例提供了一种改进方案,即在数据同步过程中,检测是否已成功完成数据同步。如果确定已成功完成数据同步,则不作处理,而是继续读取第一临时表中的数据,对第一数据备表进行数据同步,从而使得第一数据备表中的数据与第一数据主表中的数据保持一致。
在操作S240,如果确定第一数据备表未成功完成数据同步,则获取第二临时表,第二临时表中存储有在预设时间段内针对第一数据主表所做的操作。
应该理解,在本公开实施例中,除了使用第一临时表记录应用服务器对第一数据库的主表的修改记录之外,还使用了另一张临时表即第二临时表。具体地,使用第二临时表记录在预设时间段内针对第一数据主表所做的操作。
在操作S250,针对第一数据备表执行第二临时表中记录的操作,以实现对第一数据备表的数据同步。
具体地,在本公开实施例中,如果确定第一数据备表没有成功完成数据同步,则将第二临时表中记录的操作,对第一数据备表重新执行一遍,从而将第一数据备表中没有同步成功的数据补回来,使得第一数据备表中的数据与第一数据主表中的数据最终能够保持一致。
图3示意性示出了根据本公开实施例的确定第一数据备表是否已成功完成数据同步的流程图。
如图2所示,作为一种可选的实施例,操作S230确定第一数据备表是否已成功完成数据同步例如可以包括如下操作S310~S320。
在操作S310,响应于第一数据库宕机,确定第一数据备表是否仍处于冻结状态。
具体地,在本公开实施例中,响应于对第一数据库的备表执行数据同步操作,日志服务器例如可以向第二数据库发送冻结报文,以通知第二数据库将第一数据库的备表设置为冻结状态。其中,如果第一数据库宕机或者网络闪断时第一数据库的备表仍然处于冻结状态,则确认第一数据库的备表尚未成功完成数据同步。而如果第一数据库宕机或者网络闪断时第一数据库的备表不再处于冻结状态,则确认第一数据库的备表已成功完成数据同步。
因此,响应于第一数据库宕机或者网络闪断,可以通过确定第一数据库的备表是否仍处于冻结状态来确定第一数据备表是否已成功完成数据同步。
接下来,在操作S320,如果确定第一数据备表仍处于冻结状态,则确定第一数据备表未成功完成数据同步。
应该理解,在本公开实施例中,响应于第一数据库的备表已成功完成数据同步操作,日志服务器例如还可以向第二数据库发送冻结解除报文,以通知第二数据库将第一数据库的备表重置为非冻结状态,以防止同步服务器持续利用第二临时表对第一数据库的备表执行数据回补操作而导致数据冗余。
具体地,在本公开实施例中,没有执行数据同步操作时,第二数据库可以将第一数据库的备表的状态值设置为0。第二数据库响应于日志服务器发送的冻结报文,可以将第一数据库的备表的状态值设置为1。并且响应于日志服务器发送的冻结解除报文,第二数据库还可以将第一数据库的备表重置为0。当然也可以做相反设置,即没有执行数据同步操作时,第一数据库可以将第一数据库的备表的状态值设置为1。第一数据库响应于日志服务器发送的冻结报文,可以将第一数据库的备表的状态值设置为0。并且响应于日志服务器发送的冻结解除报文,第二数据库还可以将第一数据库的备表重置为1。本公开对此不做限定。
因此,进一步,作为一种可选的实施例,确定第一数据备表是否仍处于冻结状态例如可以包括如下操作。即确定第一数据备表的状态值是否为1,如果确定第一数据备表的状态值为1,则确定第一数据备表仍处于冻结状态。
图4示意性示出了根据本公开实施例的数据同步装置的框图。
应该理解,在本公开实施例中,该数据同步装置例如可以用于对第一数据库和第二数据库进行数据同步。具体地,第一数据库例如可以通过第一数据主表存储数据。第二数据库例如可以通过第二数据主表存储数据。且第一数据库例如可以通过第二数据备表为第二数据主表备份数据。第二数据库例如可以通过第一数据备表为第一数据主表备份数据。因此,应该理解,在本公开实施例中,第一数据库和第二数据库例如可以互为主备数据库。只是在互为主备数据库时,两个数据库又可以作为其他数据系统的主数据库使用。
如图4所示,在本公开实施例中,该数据同步装置400例如可以包括第一获取模块401、第一同步模块402、确定模块403和第二获取模块404和第二同步模块405。该数据同步装置400例如可以执行上面参考方法实施例部分描述的方法,在此不再赘述。
具体地,第一获取模块401例如可以用于获取第一临时表,第一临时表中存储有在预设时间段内针对第一数据主表的修改记录。
第一同步模块402例如可以用于根据第一临时表中存储的修改记录对第一数据备表进行数据同步。
确定模块403例如可以用于确定第一数据备表是否已成功完成数据同步。
第二获取模块404例如可以用于在确定第一数据备表未成功完成数据同步的情况下,获取第二临时表。第二临时表中存储有在预设时间段内针对第一数据主表所做的操作。
第二同步模块405例如可以用于针对第一数据备表执行第二临时表中记录的操作,以实现对第一数据备表的数据同步。
作为一种可选的实施例,确定模块例如可以包括第一确定单元和第二确定单元。
具体地,第一确定单元例如可以用于响应于第一数据库宕机,确定第一数据备表是否仍处于冻结状态。
第二确定单元例如可以用于在确定第一数据备表仍处于冻结状态的情况下,确定第一数据备表未成功完成数据同步。
作为一种可选的实施例,第一确定单元例如可以包括第一确定子单元和第二确定子单元。
具体地,第一确定子单元例如可以用于确定第一数据备表的状态值是否为1。
第二确定子单元例如可以用于在确定第一数据备表的状态值为1的情况下,确定第一数据备表仍处于冻结状态。
需要说明的是,装置部分的实施例方式与方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。
根据本公开的实施例的模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块401、第一同步模块402、确定模块403和第二获取模块404和第二同步模块405中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块401、第一同步模块402、确定模块403和第二获取模块404和第二同步模块405中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块401、第一同步模块402、确定模块403和第二获取模块404和第二同步模块405中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图5示意性示出了根据本公开实施例的电子设备的框图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500包括处理器510、计算机可读存储介质520。该电子设备500可以执行根据本公开实施例的方法。
具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质520,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行根据本公开实施例的方法或其任何变形。
计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521A、模块521B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,第一获取模块401、第一同步模块402、确定模块403和第二获取模块404和第二同步模块405中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (10)

1.一种数据同步方法,用于对第一数据库和第二数据库进行数据同步,所述第一数据库通过第一数据主表存储数据,所述第二数据库通过第二数据主表存储数据,且所述第一数据库通过第二数据备表为所述第二数据主表备份数据,所述第二数据库通过第一数据备表为所述第一数据主表备份数据;所述方法包括:
获取第一临时表,所述第一临时表中存储有在预设时间段内针对所述第一数据主表的修改记录;
根据所述第一临时表中存储的所述修改记录对所述第一数据备表进行数据同步;
确定所述第一数据备表是否已成功完成数据同步;
如果确定所述第一数据备表未成功完成数据同步,则获取第二临时表,所述第二临时表中存储有在所述预设时间段内针对所述第一数据主表所做的操作;以及
针对所述第一数据备表执行所述第二临时表中记录的操作,以实现对所述第一数据备表的数据同步。
2.根据权利要求1所述的方法,其中,所述确定所述第一数据备表是否已成功完成数据同步,包括:
响应于所述第一数据库宕机,确定所述第一数据备表是否仍处于冻结状态;以及
如果确定所述第一数据备表仍处于所述冻结状态,则确定所述第一数据备表未成功完成数据同步。
3.根据权利要求2所述的方法,其中,所述确定所述第一数据备表是否仍处于冻结状态,包括:
确定所述第一数据备表的状态值是否为1;以及
如果确定所述第一数据备表的状态值为1,则确定所述第一数据备表仍处于所述冻结状态。
4.根据权利要求1所述的方法,其中,所述第一数据库和所述第二数据库互为主备数据库。
5.根据权利要求1所述的方法,其中,所述修改记录包括修改所使用的主键信息和修改所针对的所述第一数据主表的表名。
6.一种数据同步装置,用于对第一数据库和第二数据库进行数据同步,所述第一数据库通过第一数据主表存储数据,所述第二数据库通过第二数据主表存储数据,且所述第一数据库通过第二数据备表为所述第二数据主表备份数据,所述第二数据库通过第一数据备表为所述第一数据主表备份数据;所述装置包括:
第一获取模块,用于获取第一临时表,所述第一临时表中存储有在预设时间段内针对所述第一数据主表的修改记录;
第一同步模块,用于根据所述第一临时表中存储的所述修改记录对所述第一数据备表进行数据同步;
确定模块,用于确定所述第一数据备表是否已成功完成数据同步;
第二获取模块,用于在确定所述第一数据备表未成功完成数据同步的情况下,获取第二临时表,所述第二临时表中存储有在所述预设时间段内针对所述第一数据主表所做的操作;以及
第二同步模块,用于针对所述第一数据备表执行所述第二临时表中记录的操作,以实现对所述第一数据备表的数据同步。
7.根据权利要求6所述的装置,其中,所述确定模块包括:
第一确定单元,用于响应于所述第一数据库宕机,确定所述第一数据备表是否仍处于冻结状态;以及
第二确定单元,用于在确定所述第一数据备表仍处于所述冻结状态的情况下,确定所述第一数据备表未成功完成数据同步。
8.根据权利要求7所述的装置,其中,所述第一确定单元包括:
第一确定子单元,用于确定所述第一数据备表的状态值是否为1;以及
第二确定子单元,用于在确定所述第一数据备表的状态值为1的情况下,确定所述第一数据备表仍处于所述冻结状态。
9.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至5中任一项所述的方法。
10.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至5中任一项所述的方法。
CN201910699774.0A 2019-07-30 2019-07-30 数据同步方法和装置 Active CN110442648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910699774.0A CN110442648B (zh) 2019-07-30 2019-07-30 数据同步方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910699774.0A CN110442648B (zh) 2019-07-30 2019-07-30 数据同步方法和装置

Publications (2)

Publication Number Publication Date
CN110442648A true CN110442648A (zh) 2019-11-12
CN110442648B CN110442648B (zh) 2022-04-01

Family

ID=68432354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910699774.0A Active CN110442648B (zh) 2019-07-30 2019-07-30 数据同步方法和装置

Country Status (1)

Country Link
CN (1) CN110442648B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291011A (zh) * 2020-02-19 2020-06-16 北京百度网讯科技有限公司 文件同步方法及装置、电子设备和可读存储介质
CN111309806A (zh) * 2020-02-05 2020-06-19 杭州数梦工场科技有限公司 数据同步方法、装置、电子设备、存储介质
CN112527914A (zh) * 2021-02-10 2021-03-19 腾讯科技(深圳)有限公司 主备数据库同步方法、主节点、备节点及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070083491A1 (en) * 2004-05-27 2007-04-12 Silverbrook Research Pty Ltd Storage of key in non-volatile memory
US7827248B2 (en) * 2003-06-13 2010-11-02 Randy Oyadomari Discovery and self-organization of topology in multi-chassis systems
CN105323289A (zh) * 2014-08-01 2016-02-10 上海博达数据通信有限公司 一种基于分布式的数据同步方法
CN106021593A (zh) * 2016-06-07 2016-10-12 浪潮电子信息产业股份有限公司 一种第一数据库与第二数据库接管过程中的复制处理方法
CN106354865A (zh) * 2016-09-09 2017-01-25 北京奇虎科技有限公司 一种同步主从数据库的方法、装置和系统
CN108984107A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 提高存储系统的可用性
CN109271442A (zh) * 2018-07-27 2019-01-25 东软集团股份有限公司 数据库同步恢复方法、装置、计算机可读存储介质和电子设备
CN109919615A (zh) * 2019-03-01 2019-06-21 上海分布信息科技有限公司 基于区块链的跨链数据交互方法及跨链数据交互系统
CN110019346A (zh) * 2017-12-29 2019-07-16 北京京东尚科信息技术有限公司 一种基于双主数据库的数据处理方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827248B2 (en) * 2003-06-13 2010-11-02 Randy Oyadomari Discovery and self-organization of topology in multi-chassis systems
US20070083491A1 (en) * 2004-05-27 2007-04-12 Silverbrook Research Pty Ltd Storage of key in non-volatile memory
CN105323289A (zh) * 2014-08-01 2016-02-10 上海博达数据通信有限公司 一种基于分布式的数据同步方法
CN106021593A (zh) * 2016-06-07 2016-10-12 浪潮电子信息产业股份有限公司 一种第一数据库与第二数据库接管过程中的复制处理方法
CN106354865A (zh) * 2016-09-09 2017-01-25 北京奇虎科技有限公司 一种同步主从数据库的方法、装置和系统
CN108984107A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 提高存储系统的可用性
CN110019346A (zh) * 2017-12-29 2019-07-16 北京京东尚科信息技术有限公司 一种基于双主数据库的数据处理方法和装置
CN109271442A (zh) * 2018-07-27 2019-01-25 东软集团股份有限公司 数据库同步恢复方法、装置、计算机可读存储介质和电子设备
CN109919615A (zh) * 2019-03-01 2019-06-21 上海分布信息科技有限公司 基于区块链的跨链数据交互方法及跨链数据交互系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FS20041242: "《https://blog.csdn.net/fs20041242/article/details/84114941》", 14 December 2011 *
章波焕 等: "基于Data Guard技术的综合业务管理平台数据库异地容灾实践", 《电信技术》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309806A (zh) * 2020-02-05 2020-06-19 杭州数梦工场科技有限公司 数据同步方法、装置、电子设备、存储介质
CN111309806B (zh) * 2020-02-05 2021-07-23 杭州数梦工场科技有限公司 数据同步方法、装置、电子设备、存储介质
CN111291011A (zh) * 2020-02-19 2020-06-16 北京百度网讯科技有限公司 文件同步方法及装置、电子设备和可读存储介质
CN111291011B (zh) * 2020-02-19 2023-10-20 北京百度网讯科技有限公司 文件同步方法及装置、电子设备和可读存储介质
CN112527914A (zh) * 2021-02-10 2021-03-19 腾讯科技(深圳)有限公司 主备数据库同步方法、主节点、备节点及存储介质

Also Published As

Publication number Publication date
CN110442648B (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
US10866967B2 (en) Multi-replica asynchronous table replication
US11604708B2 (en) Memory first live snapshot
WO2019154394A1 (zh) 分布式数据库集群系统、数据同步方法及存储介质
CN106815275B (zh) 一种通过备用数据库实现主备数据库同步的方法与设备
CA2790734C (en) Data synchronization between a data center environment and a cloud computing environment
CN110442648A (zh) 数据同步方法和装置
US10983872B2 (en) Systems and methods for data synchronization
CN111444274B (zh) 数据同步方法、数据同步系统及其装置、介质和系统
CN103795801A (zh) 一种基于实时应用集群的元数据集群设计方法
CN107729515B (zh) 一种数据同步的方法、装置及存储介质
US11748215B2 (en) Log management method, server, and database system
US20130339296A1 (en) File synchronization method, files synchronization apparatus and electronic device
CN103516549A (zh) 一种基于共享对象存储的文件系统元数据日志机制
CN103617195B (zh) 一种用于MySQL数据库的数据同步系统和方法
US9871863B2 (en) Managing network attached storage
CN102385624B (zh) 一种面向分布式文件系统的日志数据组织的方法
CN106775846A (zh) 用于物理服务器的在线迁移的方法及装置
CN103942117B (zh) 一种数据备份方法、装置及系统
CN110895545B (zh) 共享数据同步方法及装置
CN110413692A (zh) 用于数据库集群的数据处理方法和服务器
EA201891079A1 (ru) Способ и система передачи информации о p2p-переводе
CN103838639A (zh) 一种恢复虚拟磁盘元数据的方法、装置及系统
CN113868027B (zh) 数据快照方法及装置
CN110147355B (zh) 数据同步方法、装置及服务器
CN117874127A (zh) 一种Redis内核解决异地多活数据同步回环的方法与装置

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
GR01 Patent grant
GR01 Patent grant