数据库同步的方法及装置的制造方法

文档序号:9750850阅读:303来源:国知局
数据库同步的方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据库技术领域,具体而言,本发明涉及一种数据库同步的方法及装置。
【背景技术】
[0002]随着网络应用的迅速发展,人们对获取信息的正确性和及时性的要求也越来越高。数据库系统是目前存储数据、检索信息最为方便高效的手段,绝大多数企业都将信息存储在数据库中。目前数据库系统的趋势是由小型化向大型化、集中式向分布式发展,在分布式数据库中,数据同步技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
[0003]但是,数据库在任何时间点都有可能发生数据丢失或崩溃,现有数据库系统一般为主从数据库构架,包括一个主数据库及多个从数据库,当主数据库服务器发生故障时,需要将从数据库切换为主数据库,切换过程较为复杂,在主从切换不顺畅时可能使得数据服务暂停,导致前端业务中断,服务的连续性降低;或为各个主数据库提供单独的日志备份模块,但是需要为每一主数据库单独维护其相应的日志备份模块,维护过程复杂,增加服务端维护成本。
[0004]因此,需要实现一种多数据库架构方案,确保当其中某一数据库发生故障后能够在不影响前端数据业务的情况下将故障数据库的数据快速修复,且无需单独为每一数据库维护相应的日志备份模块,不增加数据库服务器的维护成本,最终达到数据库的高稳定性和高业务连续性的设计目的。

【发明内容】

[0005]为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
[0006]本发明的实施例提出了一种数据库同步的方法,应用于包括至少两个主数据库的数据库系统中的第一主数据库,所述方法包括:
[0007]当接收到数据操作请求时,解析所述数据操作请求以获取对应的数据操作命令和对应的数据操作信息;
[0008]判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的第二主数据库;
[0009]若所述数据操作请求是来自数据库系统中的第二主数据库,则根据所述数据操作信息记录当前已同步来自所述第二主数据库的同步数据条目数;
[0010]执行所述数据操作命令。
[0011]优选地,当监测到与所述第二主数据库之间的通信中断后恢复时,该方法还包括:
[0012]向所述第二主数据库发送同步恢复请求,其中,所述同步恢复请求包括所述同步数据条目数;
[0013]接收所述第二主数据库响应于所述恢复同步请求发送的数据操作请求,其中,该数据操作请求为根据所述同步数据条目数在所述第二主数据库中所确定的尚未同步的数据操作命令和对应的数据操作信息;
[0014]执行该数据操作命令。
[0015]优选地,该方法还包括:
[0016]持续地接收包括与所述第二主数据库之间通信中断后尚未同步的数据操作命令的数据操作请求,并相应地执行数据操作命令,以完成与所述第二主数据库之间通信中断恢复后尚未同步数据的数据补齐。
[0017]优选地,该方法还包括:
[0018]完成与所述第二主数据库之间通信中断恢复后的尚未同步数据的数据补齐之前,当接收到数据操作请求时,解析所述数据操作请求以获取对应的数据操作命令和对应的数据操作信息;
[0019]判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的所述第二主数据库;
[0020]若所述数据操作请求是来自数据库系统外部,则将解析得到的数据操作命令和对应的数据操作信息缓存至本地缓存中。
[0021 ]优选地,该方法还包括:
[0022]完成与所述第二主数据库之间通信中断恢复后的尚未同步数据的数据补齐之后,执行所述本地缓存中缓存的数据操作命令。
[0023]优选地,判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的第二主数据库的步骤进一步包括:
[0024]依据所述数据操作信息判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的第二主数据库,其中所述数据操作信息包含用以区分所述数据操作请求来源的标识。
[0025]本发明的实施例提出了一种数据库同步的方法,应用于包括至少两个主数据库的数据库系统中的第二主数据库,所述方法包括:
[0026]当接收到数据操作请求时,解析所述数据操作请求以获取对应的数据操作命令和对应的数据操作信息;
[0027]判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的第一主数据库;
[0028]若所述数据操作请求是来自数据库系统外部,将所述数据操作请求同步至所述数据库系统中的第一主数据库;
[0029]记录当前已同步至所述第一主数据库的同步数据条目数。
[0030]优选地,该方法还包括:
[0031]当监测到与所述第一主数据库之间的通信中断时,停止将所述数据操作请求同步至所述第一主数据库。
[0032]优选地,当监测到与所述第一主数据库之间的通信中断后恢复时,该方法还包括:
[0033]根据记录的当前已同步至所述第一主数据库的同步数据条目数,确定尚未同步至所述第一主数据库的数据操作命令和对应的数据操作信息;
[0034]依据尚未同步至所述第一主数据库的数据操作命令和对应的数据操作信息生成数据操作请求;
[0035]向所述第一主数据库发送数据操作请求。
[0036]优选地,该方法还包括:
[0037]持续地向所述第一主数据库发送包括与所述第一主数据库之间通信中断后尚未同步的数据操作命令的数据操作请求,以完成与所述第一主数据库之间通信中断恢复后尚未同步数据的数据补齐。
[0038]本发明的实施例中提出了一种数据库同步的装置,应用于包括至少两个主数据库的数据库系统中的第一主数据库,所述装置包括:
[0039]第一解析模块,当接收到数据操作请求时,解析所述数据操作请求以获取对应的数据操作命令和对应的数据操作信息;
[0040]第一判断模块,判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的第二主数据库;
[0041 ]第一同步模块,若所述数据操作请求是来自数据库系统中的第二主数据库,则根据所述数据操作信息记录当前已同步来自所述第二主数据库的同步数据条目数;
[0042]第一执行模块,执行所述数据操作命令。
[0043]优选地,当监测到与所述第二主数据库之间的通信中断后恢复时,该装置还包括:
[0044]第一发送模块,向所述第二主数据库发送同步恢复请求,其中,所述同步恢复请求包括所述同步数据条目数;
[0045]接收模块,接收所述第二主数据库响应于所述恢复同步请求发送的数据操作请求,其中,该数据操作请求为根据所述同步数据条目数在所述第二主数据库中所确定的尚未同步的数据操作命令和对应的数据操作信息;
[0046]第二执行模块,执行该数据操作命令。
[0047]优选地,该装置还包括:
[0048]第一数据补齐模块,持续地接收包括与所述第二主数据库之间通信中断后尚未同步的数据操作命令的数据操作请求,并相应地执行数据操作命令,以完成与所述第二主数据库之间通信中断恢复后尚未同步数据的数据补齐。
[0049]优选地,该装置还包括:
[0050]第二解析模块,完成与所述第二主数据库之间通信中断恢复后的尚未同步数据的数据补齐之前,当接收到数据操作请求时,解析所述数据操作请求以获取对应的数据操作命令和对应的数据操作信息;
[0051 ]第二判断模块,判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的所述第二主数据库;
[0052]缓存模块,若所述数据操作请求是来自数据库系统外部,则将解析得到的数据操作命令和对应的数据操作信息缓存至本地缓存中。
[0053]优选地,该装置还包括:
[0054]第三执行模块,完成与所述第二主数据库之间通信中断恢复后的尚未同步数据的数据补齐之后,执行所述本地缓存中缓存的数据操作命令。
[0055]优选地,判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的第二主数据库,包括:
[0056]依据所述数据操作信息判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的第二主数据库,其中所述数据操作信息包含用以区分所述数据操作请求来源的标识。
[0057]本发明的实施例提出了一种数据库同步的装置,应用于包括至少两个主数据库的数据库系统中的第二主数据库,所述装置包括:
[0058]第三解析模块,当接收到数据操作请求时,解析所述数据操作请求以获取对应的数据操作命令和对应的数据操作信息;
[0059]第三判断模块,判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的第一主数据库;
[0060]第二同步模块,若所述数据操作请求是来自数据库系统外部,将所述数据操作请求同步至所述数据库系统中的第一主数据库;
[0061]记录模块,记录当前已同步至所述第一主数据库的同步数据条目数。
[0062]优选地,该装置还包括:
[0063]停止模块,当监测到与所述第一主数据库之间的通信中断时,停止将所述数
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1