多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质技术方案

技术编号:28216409 阅读:20 留言:0更新日期:2021-04-28 09:28
本发明专利技术实施例提供了一种多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质。该系统包括:第一副本数据库节点和至少一个第二副本数据库节点,其中,第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至第二副本数据库节点,在接收到第二副本数据库节点返回的确认消息后,根据接收到的确认消息,提交事务,并向所述第二副本数据库节点发送提交指示。本发明专利技术实施例通过设置用于提供数据写服务的第一副本数据库节点和用于仅提供数据只读服务的第二副本数据库节点,第一副本数据库节点基于事务向各节点同步逻辑日志,从而使得第一副本数据库节点可以基于事务进行故障恢复的管理操作,实现各副本数据库节点中的数据一致性。本数据库节点中的数据一致性。本数据库节点中的数据一致性。

【技术实现步骤摘要】
多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质


[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]图1为本专利技术提供的多副本数据库系统实施例的应用场景示意图;
[0027]图2为本专利技术提供的数据处理方法一个实施例的流程图;
[0028]图3为本专利技术提供的数据处理方法另一个实施例的流程图;
[0029]图4为本专利技术提供的电子设备实施例的结构示意图。
具体实施方式
[0030]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多副本数据库系统,由多个副本数据库节点组成,其特征在于,在所述多个副本数据库节点中,包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,其中,所述第一副本数据库节点用于,将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务,并向所述第二副本数据库节点发送提交指示;所述第二副本数据库节点用于,在接收到所述第一副本数据库节点发送的逻辑日志后,向所述第一副本数据库节点返回确认消息,重放所述逻辑日志,并根据所述第一副本数据库节点发送的提交指示,提交所述包括数据写操作的事务。2.根据权利要求1所述的多副本数据库系统,其特征在于,所述第一副本数据库节点具体用于,判断接收到的所述确认消息的个数,当所述确认消息的个数大于所述第二副本数据库节点的半数与一之差时,提交所述包括数据写操作的事务,并向所述第二副本数据库节点发送提交指示。3.根据权利要求1或2所述的多副本数据库系统,其特征在于,还包括:控制节点,用于在所述多副本数据库系统中不存在可用的第一副本数据库节点时,在所述多个副本数据库节点中选取一个作为第一副本数据库节点,将所述第一副本数据库节点以外的副本数据库节点作为第二副本数据库节点。4.根据权利要求3所述的多副本数据库系统,其特征在于,所述第一副本数据库节点具有有效期,在当前副本数据库节点作为第一副本数据库节点的有效期内,重新启动的所述当前副本数据库节点被选取作为第一副本数据库节点的概率高于其余副本数据库节点被选取作为第一副本数据库节点的概率。5.根据权利要求3所述的多副本数据库系统,其特征在于,所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第一副本数据库节点后,生成逻辑空日志,将所述逻辑空日志发送至所述第二副本数据库节点,在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息的个数,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务;所述第二副本数据库节点还用于,在接收到所述第一副本数据库节点发送的逻辑空日志后,向所述第一副本数据库节点返回确认消息,并根据所述第一副本数据库节点发送的提交指示,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务。6.根据权利要求5所述的多副本数据库系统,其特征在于,所述第一副本数据库节点具体用于,判断接收到的所述确认消息的个数,当所述确认消息的个数大于所述第二副本数据库节点的半数与一之差时,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务,并向所述第二副本数据库节点发送提交指示。7.根据权利要求3所述的多副本数据库系统,其特征在于,所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第二副本数据库节点后,比较本地存储的逻辑日志与所述第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,回滚所述多余的逻辑日志相关的事务,并根据所述第一副本数据库节点发送的提交或回滚指示,提交或回滚未被提交的事务。
8.根据权利要求3所述的多副本数据库系统,其特征在于,所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第二副本数据库节点后,根据本地存储的逻辑日志,提交或回滚未被提交的事务,比较本地存储的逻辑日志与所述第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,并闪回所述多余的逻辑日志所针对的操作。9.一种数据处理方法,应用于由多个副本数据库节点组成的多副本数据库系统,在所述多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,其特征在于,所述方法包括:所述第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,以使所述第二副本数据库节点重放所述逻辑日志;所述第一副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务;...

【专利技术属性】
技术研发人员:白广超王殿成
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1