数据库的数据操作的方法及装置的制造方法

文档序号:9727391阅读:233来源:国知局
数据库的数据操作的方法及装置的制造方法
【技术领域】
[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]优选地,所述任一个主数据库以key-value的数据存储格式进行数据的更新及同步。
[0030]本发明的实施例中提出了一种数据库的数据操作装置,应用于包括至少两个主数据库的数据库系统中的任一个主数据库,所述装置包括:
[0031]解析模块,用于当接收到数据操作请求时,解析所述数据操作请求以获取对应的数据操作命令和对应的数据操作信息;
[0032]第一判断模块,用于判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的另一主数据库;
[0033]第二判断模块,用于若所述数据操作请求是来自数据库系统中的另一主数据库,则判断所述数据操作命令中的操作是否为对应数据的最新操作;
[0034]第一执行模块,用于若所述数据操作命令中的操作为对应数据的最新操作,则执行所述数据操作命令。
[0035]优选地,所述装置还包括:
[0036]第三判断模块,用于若所述数据操作请求是来自数据库系统中的另一主数据库,则判断所述数据操作命令中的操作是否为对应数据的最新操作;
[0037]第二执行模块,用于若所述数据操作命令中的操作为对应数据的最新操作,则执行所述数据操作命令。
[0038]优选地,所述装置还包括:
[0039]第三执行模块,用于若所述数据操作请求来自数据库系统外部,则直接执行所述数据操作命令。
[0040]优选地,在执行所述数据操作命令之后,所述装置还包括:
[0041 ]同步模块,用于将所述数据操作请求同步至所述数据库系统中的另一主数据库。
[0042]优选地,所述装置还包括:
[0043]忽略模块,用于若所述数据操作命令中的操作并非对应数据的最新操作,则忽略所述数据操作请求。
[0044]其中,第一判断模块进一步包括:
[0045]第一判断子模块,用于依据所述数据操作信息判断所述数据操作请求是来自数据库系统外部或是来自数据库系统中的另一主数据库,其中所述数据操作信息包含用以区分所述数据操作请求来源的标识。
[0046]其中,第二判断模块进一步包括:
[0047]第二判断子模块,用于依据所述数据操作信息及本地数据操作日志判断所述数据操作命令中的操作是否为对应数据的最新操作。
[0048]优选地,所述数据操作信息包括所述数据操作命令对应的第一时间戳,所述本地数据操作日志包括所述对应数据的最后操作对应的第二时间戳,第二判断子模块进一步包括:
[0049]对比单元,用于对比所述第一时间戳与所述第二时间戳;
[0050]最新操作确定单元,用于若所述第二时间戳早于所述第一时间戳,则所述数据操作命令中的操作为对应数据的最新操作。
[0051]其中,判断所述数据操作命令中的操作为对应数据的最新操作时,该装置还包括:
[0052]记录模块,用于将所述数据操作命令及其对应的第一时间戳相关联的记录至本地数据操作日志中,并将该第一时间戳作为本地数据操作日志中所述对应数据的最后操作对应的第二时间戳。
[0053]优选地,所述任一个主数据库以key-value的数据存储格式进行数据的更新及同步。
[0054]本发明的实施例中,提出了一种数据库的数据操作的方案,数据库系统中的任一主数据库,通过判断获取到的数据操作请求是来自数据库系统外部或是来自数据库系统中的另一主数据库,并根据数据操作命令执行数据操作命令,实现了双主型数据库系统各主数据库之间的数据同步,同时,对数据操作命令中的操作是否为对应数据的最新操作进行判断,以避免由于数据通信延迟等原因带来的数据误更新情况。
[0055]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0056]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0057]图1为本发明中一个实施例的数据库的数据操作方法的流程示意图;
[0058]图2为本发明中一个优选实施例的数据库的数据操作方法的流程示意图;
[0059]图3为本发明中另一优选实施例的数据库的数据操作方法的流程示意图;
[0060]图4为本发明中另一实施例的数据库的数据操作装置的结构示意图;
[0061]图5为本发明中一个优选实施例数据库的数据操作的装置的结构示意图;
[0062]图6为本发明中另一优选实施例数据库的数据操作的装置的结构示意图。
【具体实施方式】
[0063]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0064]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1