【技术实现步骤摘要】
多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质
[0001]本专利技术涉及数据库
,尤其涉及一种多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质。
技术介绍
[0002]多副本数据库系统,是由一组可以独立运行的副本数据库组成的数据库系统。在多副本数据库系统中,每个副本数据库上的数据库实例都可以对外提供服务,数据库中的数据在每个数据库实例上都有副本。
[0003]在现有技术中,当某个数据库实例发生故障时,可以使用其他数据库实例上的副本来确保继续提供一致的服务。即,在多副本数据库系统运行时,使用的数据会被复制到每一个数据库实例中作为副本,从而当某个数据库实例发生故障时,可以使用其他数据库实例继续提供服务。当发生故障的数据库实例的故障被排除并重新加入多副本数据库系统时,需要对该重新加入的数据库实例进行处理,以使得其与其他数据库实例保持数据一致。
[0004]为了保持数据库实例之间的数据一致性,现有技术通常根据数据库实例所记录的日志来对中断的事务进行处理,并在处理之后与其他数据库实例进行比较,判断是否一致。并在检查到不一致时,通过闪回操作来恢复数据,直至数据一致。但是这样的数据恢复操作,不但操作复杂,而且不支持事务的原子操作,使得在数据恢复过程中,处于恢复状态中的不一致的数据仍然有可能被访问到,从而出现幻读、不可重复读等现象,导致无法提供符合事务要求的数据库服务。
技术实现思路
[0005]本专利技术实施例提供一种多副本数据库系统、数据处理方法、电子设备以及 ...
【技术保护点】
【技术特征摘要】
1.一种多副本数据库系统,由多个副本数据库节点组成,其特征在于,在所述多个副本数据库节点中,包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,其中,所述第一副本数据库节点用于,将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务,并向所述第二副本数据库节点发送提交指示;所述第二副本数据库节点用于,在接收到所述第一副本数据库节点发送的逻辑日志后,向所述第一副本数据库节点返回确认消息,重放所述逻辑日志,并根据所述第一副本数据库节点发送的提交指示,提交所述包括数据写操作的事务。2.根据权利要求1所述的多副本数据库系统,其特征在于,所述第一副本数据库节点具体用于,判断接收到的所述确认消息的个数,当所述确认消息的个数大于所述第二副本数据库节点的半数与一之差时,提交所述包括数据写操作的事务,并向所述第二副本数据库节点发送提交指示。3.根据权利要求1或2所述的多副本数据库系统,其特征在于,还包括:控制节点,用于在所述多副本数据库系统中不存在可用的第一副本数据库节点时,在所述多个副本数据库节点中选取一个作为第一副本数据库节点,将所述第一副本数据库节点以外的副本数据库节点作为第二副本数据库节点。4.根据权利要求3所述的多副本数据库系统,其特征在于,所述第一副本数据库节点具有有效期,在当前副本数据库节点作为第一副本数据库节点的有效期内,重新启动的所述当前副本数据库节点被选取作为第一副本数据库节点的概率高于其余副本数据库节点被选取作为第一副本数据库节点的概率。5.根据权利要求3所述的多副本数据库系统,其特征在于,所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第一副本数据库节点后,生成逻辑空日志,将所述逻辑空日志发送至所述第二副本数据库节点,在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息的个数,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务;所述第二副本数据库节点还用于,在接收到所述第一副本数据库节点发送的逻辑空日志后,向所述第一副本数据库节点返回确认消息,并根据所述第一副本数据库节点发送的提交指示,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务。6.根据权利要求5所述的多副本数据库系统,其特征在于,所述第一副本数据库节点具体用于,判断接收到的所述确认消息的个数,当所述确认消息的个数大于所述第二副本数据库节点的半数与一之差时,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务,并向所述第二副本数据库节点发送提交指示。7.根据权利要求3所述的多副本数据库系统,其特征在于,所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第二副本数据库节点后,比较本地存储的逻辑日志与所述第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,回滚所述多余的逻辑日志相关的事务,并根据所述第一副本数据库节点发送的提交或回滚指示,提交或回滚未被提交的事务。
8.根据权利要求3所述的多副本数据库系统,其特征在于,所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第二副本数据库节点后,根据本地存储的逻辑日志,提交或回滚未被提交的事务,比较本地存储的逻辑日志与所述第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,并闪回所述多余的逻辑日志所针对的操作。9.一种数据处理方法,应用于由多个副本数据库节点组成的多副本数据库系统,在所述多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,其特征在于,所述方法包括:所述第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,以使所述第二副本数据库节点重放所述逻辑日志;所述第一副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务;...
【专利技术属性】
技术研发人员:白广超,王殿成,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。