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

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

Info

Publication number
CN112711596B
CN112711596B CN201911019765.9A CN201911019765A CN112711596B CN 112711596 B CN112711596 B CN 112711596B CN 201911019765 A CN201911019765 A CN 201911019765A CN 112711596 B CN112711596 B CN 112711596B
Authority
CN
China
Prior art keywords
database node
duplicate
log
node
replica
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.)
Active
Application number
CN201911019765.9A
Other languages
English (en)
Other versions
CN112711596A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing Ltd
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 Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN201911019765.9A priority Critical patent/CN112711596B/zh
Publication of CN112711596A publication Critical patent/CN112711596A/zh
Application granted granted Critical
Publication of CN112711596B publication Critical patent/CN112711596B/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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

多副本数据库系统、数据处理方法、电子设备以及计算机可读 存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质。
背景技术
多副本数据库系统,是由一组可以独立运行的副本数据库组成的数据库系统。在多副本数据库系统中,每个副本数据库上的数据库实例都可以对外提供服务,数据库中的数据在每个数据库实例上都有副本。
在现有技术中,当某个数据库实例发生故障时,可以使用其他数据库实例上的副本来确保继续提供一致的服务。即,在多副本数据库系统运行时,使用的数据会被复制到每一个数据库实例中作为副本,从而当某个数据库实例发生故障时,可以使用其他数据库实例继续提供服务。当发生故障的数据库实例的故障被排除并重新加入多副本数据库系统时,需要对该重新加入的数据库实例进行处理,以使得其与其他数据库实例保持数据一致。
为了保持数据库实例之间的数据一致性,现有技术通常根据数据库实例所记录的日志来对中断的事务进行处理,并在处理之后与其他数据库实例进行比较,判断是否一致。并在检查到不一致时,通过闪回操作来恢复数据,直至数据一致。但是这样的数据恢复操作,不但操作复杂,而且不支持事务的原子操作,使得在数据恢复过程中,处于恢复状态中的不一致的数据仍然有可能被访问到,从而出现幻读、不可重复读等现象,导致无法提供符合事务要求的数据库服务。
发明内容
本发明实施例提供一种多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质,以解决现有技术中在故障恢复过程中,多副本数据库的数据不一致的缺陷。
为达到上述目的,本发明实施例提供了一种多副本数据库系统,由多个副本数据库节点组成,在所述多个副本数据库节点中,包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,其中,
所述第一副本数据库节点用于,将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务,并向所述第二副本数据库节点发送提交指示;
所述第二副本数据库节点用于,在接收到所述第一副本数据库节点发送的逻辑日志后,向所述第一副本数据库节点返回确认消息,重放所述逻辑日志,并根据所述第一副本数据库节点发送的提交指示,提交所述包括数据写操作的事务。
本发明实施例还提供了一种数据处理方法,应用于由多个副本数据库节点组成的多副本数据库系统,在所述多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,所述方法包括:
所述第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,以使所述第二副本数据库节点重放所述逻辑日志;
所述第一副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务;
所述第一副本数据库节点向所述第二副本数据库节点发送提交指示,以使所述第二副本数据库节点根据所述提交指示,提交所述包括数据写操作的事务。
本发明实施例还提供了一种电子设备,应用于由多个副本数据库节点组成的多副本数据库系统,在所述多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,所述电子设备包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以用于:
控制所述第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,以使所述第二副本数据节点库重放所述逻辑日志;
控制所述第一副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务;
控制所述第一副本数据库节点向所述第二副本数据库节点发送提交指示,以使所述第二副本数据库节点根据所述提交指示,提交所述包括数据写操作的事务。
本发明实施例还提供了一种计算机可读存储介质,应用于由多个副本数据库节点组成的多副本数据库系统,在所述多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,在所述计算机可读存储介质上存储有指令,所述指令包括:
控制所述第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,以使所述第二副本数据节点库重放所述逻辑日志;
控制所述第一副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务;
控制所述第一副本数据库节点向所述第二副本数据库节点发送提交指示,以使所述第二副本数据库节点根据所述提交指示,提交所述包括数据写操作的事务。
本发明实施例提供的多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质,通过在多副本数据库系统中设置用于提供数据写服务的第一副本数据库节点和用于仅提供数据只读服务的第二副本数据库节点,第一副本数据库节点基于事务向第二副本数据库节点同步逻辑日志,从而使得在数据库的故障恢复过程中,可以由第一副本数据库节点来基于事务进行故障恢复的管理操作,实现各副本数据库节点中的数据一致性,避免出现幻读或不可重复读等现象。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明提供的多副本数据库系统实施例的应用场景示意图;
图2为本发明提供的数据处理方法一个实施例的流程图;
图3为本发明提供的数据处理方法另一个实施例的流程图;
图4为本发明提供的电子设备实施例的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在现有的多副本数据库系统中,为了保持各个数据库实例之间的数据一致性,通常根据数据库实例所记录的日志来对中断的事务进行处理,并在处理之后与其他数据库实例进行比较,判断是否一致。并在检查到不一致时,通过闪回操作来恢复数据,直至数据一致。即,通过历史备份或逆向回退操作恢复数据。但是这样的数据恢复操作,不但操作复杂,而且不支持事务的原子操作,使得在数据恢复过程中,处于恢复状态中的不一致的数据仍然有可能被访问到,从而出现幻读、不可重复读等现象,导致无法提供符合事务要求的数据库服务。
因此,本申请提出了一种多副本数据库系统,其主要原理是:在多个副本数据库节点中选出一个用于提供数据写服务的第一副本数据库节点,其余的副本数据库节点作为第二副本数据库节点仅提供数据只读服务。第一副本数据库节点在执行包括数据写操作的事务时,将生成的逻辑日志发送到第二副本数据库节点,并通过反馈确认消息的第二副本数据库节点的个数来确定多数副本数据库节点已接收到该逻辑日志,从而可以提交该事务,并指示第二副本数据库节点也提交该事务,实现数据的一致性。由于第一副本数据库节点是基于事务向第二副本数据库节点同步逻辑日志,因此,在数据库的故障恢复过程中,可以由第一副本数据库节点来基于事务进行故障恢复的管理操作,从而能够实现各副本数据库节点中的数据一致性,避免出现幻读或不可重复读等现象。
上述实施例是对本发明实施例的技术原理的说明,下面通过多个实施例来进一步对本发明实施例具体技术方案进行详细描述。
实施例一
图1为本发明提供的多副本数据库系统实施例的应用场景示意图。如图1所示,本发明实施例提供的多副本数据库系统,由多个副本数据库节点组成,在多个副本数据库节点中,包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点。
其中,第一副本数据库节点用于,将执行包括数据写操作的事务所生成的逻辑日志发送至第二副本数据库节点,在接收到第二副本数据库节点返回的确认消息后,根据接收到的确认消息,提交包括数据写操作的事务,并向第二副本数据库节点发送提交指示;第二副本数据库节点用于,在接收到第一副本数据库节点发送的逻辑日志后,向第一副本数据库节点返回确认消息,重放逻辑日志,并根据第一副本数据库节点发送的提交指示,提交包括数据写操作的事务。
在本发明实施例中,当用户针对多副本数据库系统进行数据写操作时,系统中的第一副本数据库节点根据用户输入的操作指令,将执行事务所生成的相关逻辑日志发送至第二副本数据库节点。若第二副本数据库节点为一个,则该第二副本数据库节点在接收到第一副本数据库节点发送的逻辑日志后,向第一副本数据库节点返回确认消息,然后重放该逻辑日志。第一副本数据库节点接收到该确认消息后,提交该包括数据写操作的事务,将提交信息写入本地存储的物理日志。若第二副本数据库节点为多个,则各第二副本数据库节点在接收到第一副本数据库节点发送的逻辑日志后,向第一副本数据库节点返回确认消息,然后重放该逻辑日志。第一副本数据库节点统计第二副本数据库节点返回的确认消息,当接收到的确认消息的个数达到一定数量后,提交该包括数据写操作的事务,将提交信息写入本地存储的物理日志。具体地,第一副本数据库节点可以判断接收到的确认消息的个数,当确认消息的个数大于第二副本数据库节点的半数与一之差时,则可以确定多数副本数据库节点已接收到该逻辑日志,因此提交该包括数据写操作的事务。同时,第一副本数据库节点向各第二副本数据库节点发送提交指示,以使得第二副本数据库节点根据第一副本数据库节点发送的提交指示,在本节点提交该包括数据写操作的事务。
进一步地,在本发明实施例中,可以通过选举来在多个副本数据库节点中选出第一副本数据库节点。具体地,本发明实施例提供的多副本数据库系统还可以包括:控制节点。该控制节点可以用于在多副本数据库系统中不存在可用的第一副本数据库节点时,在多个副本数据库节点中选取一个作为第一副本数据库节点,将该第一副本数据库节点以外的副本数据库节点作为第二副本数据库节点。
具体地,在本发明实施例中,在选举第一副本数据库节点时,可以设置有效期,在当前副本数据库节点作为第一副本数据库节点的有效期内,如果当前副本数据库节点出现故障,并且在故障排除后重新启动,那么,在故障副本数据库节点重新启动后,控制节点将再次控制选取第一副本数据库节点,而重新启动的当前副本数据库节点被选取作为第一副本数据库节点的概率则可以设置为高于其余副本数据库节点被选取作为第一副本数据库节点的概率。
另外,本发明实施例提供的多副本数据库系统中,副本数据库节点还可以用于在重新启动后,基于物理日志恢复数据,并在被选取作为第一副本数据库节点后,生成逻辑空日志,将该逻辑空日志发送至第二副本数据库节点,在接收到第二副本数据库节点返回的确认消息后,根据接收到的确认消息的个数,提交该逻辑空日志之前的逻辑日志相关的未被提交的事务;第二副本数据库节点还可以用于,在接收到第一副本数据库节点发送的逻辑空日志后,向第一副本数据库节点返回确认消息,并根据第一副本数据库节点发送的提交指示,提交该逻辑空日志之前的逻辑日志相关的未被提交的事务。
在本发明实施例中,当当前的副本数据库节点出现故障,并且在故障排除重新启动后,该副本数据库节点可以首先基于本地存储的物理日志恢复数据。然后,控制节点判断当前系统中是否存在可用的第一副本数据库节点,如果不存在,则说明之前的第一副本数据库节点已出现故障,则控制节点控制选取出一个新的第一副本数据库节点。如果当前的副本数据库节点被选取作为第一副本数据库节点,则生成逻辑空日志,并将该逻辑空日志发送至其它的第二副本数据库节点。第二副本数据库节点则在接收到第一副本数据库节点发送的逻辑空日志后,向第一副本数据库节点返回确认消息。第一副本数据库节点在接收到第二副本数据库节点返回的确认消息后,根据接收到的确认消息的个数,提交该逻辑空日志之前的逻辑日志相关的未被提交的事务。具体地,第一副本数据库节点可以判断接收到的确认消息的个数,当确认消息的个数大于第二副本数据库节点的半数与一之差时,则可以确定多数副本数据库节点已接收到该逻辑空日志,因此提交该逻辑空日志之前的逻辑日志相关的未被提交的事务。同时,第一副本数据库节点向各第二副本数据库节点发送提交指示,以使得第二副本数据库节点可以根据第一副本数据库节点发送的提交指示,提交该逻辑空日志之前的逻辑日志相关的未被提交的事务。
进一步地,本发明实施例提供的多副本数据库系统中,副本数据库节点还可以用于在重新启动后,基于物理日志恢复数据,并在被选取作为第二副本数据库节点后,比较本地存储的逻辑日志与第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,回滚该多余的逻辑日志相关的事务,并根据第一副本数据库节点发送的提交或回滚指示,提交或回滚未被提交的事务。
在本发明实施例中,当控制节点判断出当前系统中存在可用的第一副本数据库节点,或者,控制节点判断出当前系统中不存在可用的第一副本数据库节点、并选取出当前排除故障并重新启动的副本数据库节点以外的副本数据库节点作为第一副本数据库节点时,则当前的副本数据库节点作为第二副本数据库节点,可以比较本地存储的逻辑日志与第一副本数据库节点存储的逻辑日志,如果本地存储的逻辑日志多于第一副本数据库节点中的逻辑日志,则删除多余的逻辑日志,并回滚该多余的逻辑日志相关的事务。然后,根据第一副本数据库节点发送的提交或回滚指示,提交或回滚未被提交的事务。
更进一步地,本发明实施例提供的多副本数据库系统中,副本数据库节点还可以用于在重新启动后,基于物理日志恢复数据,并在被选取作为第二副本数据库节点后,根据本地存储的逻辑日志,提交或回滚未被提交的事务,比较本地存储的逻辑日志与第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,并闪回多余的逻辑日志所针对的操作。
在本发明实施例中,当控制节点判断出当前系统中存在可用的第一副本数据库节点,或者,控制节点判断出当前系统中不存在可用的第一副本数据库节点、并选取出当前排除故障并重新启动的副本数据库节点以外的副本数据库节点作为第一副本数据库节点时,当前的副本数据库节点作为第二副本数据库节点,也可以根据本地存储的逻辑日志,提交或回滚未被提交的事务,然后,比较本地存储的逻辑日志与第一副本数据库节点存储的逻辑日志,如果本地存储的逻辑日志多于第一副本数据库节点中的逻辑日志,则删除多余的逻辑日志,并闪回多余的逻辑日志所针对的操作。
本发明实施例提供的多副本数据库系统,通过在多副本数据库系统中设置用于提供数据写服务的第一副本数据库节点和用于仅提供数据只读服务的第二副本数据库节点,第一副本数据库节点基于事务向第二副本数据库节点同步逻辑日志,在数据库的故障恢复过程中,第一副本数据库节点基于事务进行故障恢复的管理操作,保证事务的ACID特性,避免出现幻读或不可重复读等现象。
实施例二
图2为本发明提供的数据处理方法一个实施例的流程图,。该数据处理方法应用于由多个副本数据库节点组成的多副本数据库系统,在多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,该方法的执行主体可以为该多副本数据库系统,也可以为集成在该系统中的装置或芯片。如图2所示,该数据处理方法包括如下步骤:
S201,第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至第二副本数据库节点,以使第二副本数据库节点重放该逻辑日志。
在本发明实施例中,当用户针对多副本数据库系统进行数据写操作时,第一副本数据库节点根据用户输入的操作指令,将执行事务所生成的相关逻辑日志发送至第二副本数据库节点。各第二副本数据库节点在接收到第一副本数据库节点发送的逻辑日志后,向第一副本数据库节点返回确认消息,然后重放该逻辑日志。
S202,第一副本数据库节点在接收到第二副本数据库节点返回的确认消息后,根据接收到的确认消息,提交上述包括数据写操作的事务。
在本发明实施例中,当第一副本数据库节点接收到第二副本数据库节点返回的确认消息后,统计第二副本数据库节点返回的确认消息,当接收到的确认消息的个数达到一定数量后,提交该包括数据写操作的事务。具体地,第一副本数据库节点可以判断接收到的确认消息的个数,当确认消息的个数大于第二副本数据库节点的半数与一之差时,则可以确定多数副本数据库节点已接收到该逻辑日志,因此提交该包括数据写操作的事务。
S203,第一副本数据库节点向第二副本数据库节点发送提交指示,以使第二副本数据库节点根据该提交指示,提交上述包括数据写操作的事务。
在本发明实施例中,第一副本数据库节点提交该包括数据写操作的事务的同时,还向各第二副本数据库节点发送提交指示。第二副本数据库节点则根据该提交指示,提交上述包括数据写操作的事务,将提交信息写入本地存储的物理日志。
本发明实施例提供的数据处理方法,通过在多副本数据库系统中设置用于提供数据写服务的第一副本数据库节点和用于仅提供数据只读服务的第二副本数据库节点,第一副本数据库节点基于事务向第二副本数据库节点同步逻辑日志,从而使得在数据库的故障恢复过程中,可以由第一副本数据库节点来基于事务进行故障恢复的管理操作,实现各副本数据库节点中的数据一致性,避免出现幻读或不可重复读等现象。
实施例三
图3为本发明提供的数据处理方法另一个实施例的流程图。如图3所示,在上述图2所示实施例的基础上,本实施例提供的数据处理方法还可以包括以下步骤:
S301,初始化多副本数据库系统,启动系统中的副本数据库节点,在多个副本数据库节点中确定第一副本数据库节点和第二副本数据库节点。
在本发明实施例中,首先,初始化多副本数据库系统,将各个副本数据库节点添加到多副本数据库系统中。然后,启动多副本数据库系统,并在多个副本数据库节点中选举出一个第一副本数据库节点,并将其余的副本数据库节点作为第二副本数据库节点。
S302,第一副本数据库节点提供数据写服务,且第二副本数据库节点提供数据只读服务。
在本发明实施例中,用户可以在第一副本数据库节点上执行插入、修改、删除、数据定义语言(DDL)等操作,而第二副本数据库节点则只能执行查询操作。在第一副本数据库节点执行的事务中若包含数据写操作,如,插入、修改、删除数据或修改元数据等操作,则会产生物理日志与逻辑日志,在事务提交之前,第一副本数据库节点将相关的逻辑日志发送到第二副本数据库节点中进行存储。当第二副本数据库节点接收到逻辑日志,并写入本地磁盘后,回复确认消息(ACK)给第一副本数据库节点;然后可以重放此逻辑日志,直到准备提交事务阶段,此事务进入准备状态,等待第一副本数据库节点通知其可以提交后,第二副本数据库节点本地提交此事务,将提交信息写入物理日志。第一副本数据库节点则统计每条逻辑日志的确认消息的个数,若逻辑日志的确认消息的个数大于全部副本数据库节点的半数与一之差,则与此逻辑日志相关的事务可以提交;同时,第一副本数据库节点通知所有第二副本数据库节点此事务允许提交。
S303,副本数据库节点在故障排除重新启动后,基于物理日志恢复数据。
在本发明实施例中,当前的副本数据库节点出现故障,并且在故障排除重新启动后,该副本数据库节点可以首先基于物理日志进行故障恢复。若有处于准备状态的事务暂时保留不处理,等待与第一副本数据库节点同步后再决定这些准备状态的事务是提交还是回滚。
S304,判断是否已存在可用的第一副本数据库节点,若不存在,则执行步骤S305;若存在,则执行步骤S311。
S305,发起第一副本数据库节点选举。
在本发明实施例中,当当前的副本数据库节点出现故障,并且在故障排除重新启动,该副本数据库节点基于本地存储的物理日志恢复数据后。控制节点判断当前系统中是否存在可用的第一副本数据库节点,如果不存在,则说明之前的第一副本数据库节点已出现故障,则控制节点控制选取出一个新的第一副本数据库节点。每个第一副本数据库节点都有一个有效期,若在前一个第一副本数据库节点有效期内重启成功,则其可以首先发起选举,被选举为新的第一副本数据库节点的概率最大。若选举失败,则可以重新发起选举。
S306,判断当前的副本数据库节点是否被选取作为第一副本数据库节点,若是,则执行步骤S307;否则,执行步骤S311。
S307,生成逻辑空日志,将逻辑空日志发送至各第二副本数据库节点。
在本发明实施例中,如果当前的副本数据库节点被选取作为第一副本数据库节点,则进入第一副本数据库节点故障恢复过程,生成逻辑空日志,并将该逻辑空日志发送至其它的第二副本数据库节点。第二副本数据库节点则在接收到第一副本数据库节点发送的逻辑空日志后,向第一副本数据库节点返回确认消息。
S308,接收第二副本数据库节点返回的确认消息。
S309,判断确认消息的个数是否达到预设值,若是,则执行步骤S310;否则,继续执行步骤S308。
S310,提交处于准备状态的事务,并返回步骤S302。
在本发明实施例中,第一副本数据库节点在接收到第二副本数据库节点返回的确认消息后,根据接收到的确认消息的个数,提交该逻辑空日志之前的逻辑日志相关的未被提交的事务。具体地,第一副本数据库节点可以判断接收到的确认消息的个数,当确认消息的个数大于第二副本数据库节点的半数与一之差时,则可以确定多数副本数据库节点已接收到该逻辑空日志,因此提交该逻辑空日志之前的逻辑日志相关的未被提交的事务。同时,第一副本数据库节点向各第二副本数据库节点发送提交指示,以使得第二副本数据库节点可以根据第一副本数据库节点发送的提交指示,提交该逻辑空日志之前的逻辑日志相关的未被提交的事务。
S311,进行逻辑日志检测。
S312,比较本地存储的逻辑日志与第一副本数据库节点存储的逻辑日志,若本地存储的逻辑日志更多,则执行步骤S313;否则,直接执行步骤S314。
S313,删除多余的逻辑日志,并继续执行步骤S314。
S314,回滚多余的逻辑日志相关的事务,并根据第一副本数据库节点发送的提交或回滚指示,提交或回滚未被提交的事务,并返回步骤S302。
在本发明实施例中,当控制节点判断出当前系统中存在可用的第一副本数据库节点,或者,控制节点判断出当前系统中不存在可用的第一副本数据库节点、并选取出当前排除故障并重新启动的副本数据库节点以外的副本数据库节点作为第一副本数据库节点时,则当前的副本数据库节点作为第二副本数据库节点,进入第二副本数据库节点故障恢复过程,可以比较本地存储的逻辑日志与第一副本数据库节点存储的逻辑日志,如果本地存储的逻辑日志多于第一副本数据库节点中的逻辑日志,则删除多余的逻辑日志,并回滚该多余的逻辑日志相关的事务。然后,根据第一副本数据库节点发送的提交或回滚指示,提交或回滚未被提交的事务。
另外,在本发明实施例中,当控制节点判断出当前系统中存在可用的第一副本数据库节点,或者,控制节点判断出当前系统中不存在可用的第一副本数据库节点、并选取出当前排除故障并重新启动的副本数据库节点以外的副本数据库节点作为第一副本数据库节点时,当前的副本数据库节点作为第二副本数据库节点,也可以根据本地存储的逻辑日志,提交或回滚未被提交的事务,然后,比较本地存储的逻辑日志与第一副本数据库节点存储的逻辑日志,如果本地存储的逻辑日志多于第一副本数据库节点中的逻辑日志,则删除多余的逻辑日志,并闪回多余的逻辑日志所针对的操作。
最后,在本发明实施例中,当故障恢复完成后,当前副本数据库成为第一副本数据库节点提供写服务,或者,成为第二副本数据库节点提供数据只读服务。
本发明实施例提供的数据处理方法,通过在多副本数据库系统中设置用于提供数据写服务的第一副本数据库节点和用于仅提供数据只读服务的第二副本数据库节点,第一副本数据库节点基于事务向第二副本数据库节点同步逻辑日志,在数据库的故障恢复过程中,第一副本数据库节点基于事务进行故障恢复的管理操作,实现各副本数据库节点中的数据一致性,避免出现幻读或不可重复读等现象。
实施例四
以上描述了多副本数据库系统的内部功能和结构,该系统可实现为一种电子设备。图4为本发明提供的电子设备实施例的结构示意图。如图4所示,该电子设备应用于上述由多个副本数据库节点组成的多副本数据库系统,在多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,该电子设备包括存储器41和处理器42。
存储器41,用于存储程序。除上述程序之外,存储器41还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器41可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器42,与存储器41耦合,执行存储器41所存储的程序,以用于:
控制第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至第二副本数据库节点,以使第二副本数据库节点重放逻辑日志;
控制第一副本数据库节点在接收到第二副本数据库节点返回的确认消息后,根据接收到的确认消息,提交包括数据写操作的事务;
控制第一副本数据库节点向第二副本数据库节点发送提交指示,以使第二副本数据库节点根据提交指示,提交包括数据写操作的事务。
进一步,如图4所示,电子设备还可以包括:通信组件43、电源组件44、音频组件45、显示器46等其它组件。图4中仅示意性给出部分组件,并不意味着电子设备只包括图4所示组件。
通信组件43被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件43经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件43还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件44,为电子设备的各种组件提供电力。电源组件44可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件45被配置为输出和/或输入音频信号。例如,音频组件45包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器41或经由通信组件43发送。在一些实施例中,音频组件45还包括一个扬声器,用于输出音频信号。
显示器46包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (16)

1.一种多副本数据库系统,由多个副本数据库节点组成,其特征在于,在所述多个副本数据库节点中,包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,其中,
所述第一副本数据库节点用于,将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务,并向所述第二副本数据库节点发送提交指示;
所述第二副本数据库节点用于,在接收到所述第一副本数据库节点发送的逻辑日志后,向所述第一副本数据库节点返回确认消息,重放所述逻辑日志,并根据所述第一副本数据库节点发送的提交指示,提交所述包括数据写操作的事务。
2.根据权利要求1所述的多副本数据库系统,其特征在于,
所述第一副本数据库节点具体用于,判断接收到的所述确认消息的个数,当所述确认消息的个数大于所述第二副本数据库节点的半数与一之差时,提交所述包括数据写操作的事务,并向所述第二副本数据库节点发送提交指示。
3.根据权利要求1或2所述的多副本数据库系统,其特征在于,还包括:
控制节点,用于在所述多副本数据库系统中不存在可用的第一副本数据库节点时,在所述多个副本数据库节点中选取一个作为第一副本数据库节点,将所述第一副本数据库节点以外的副本数据库节点作为第二副本数据库节点。
4.根据权利要求3所述的多副本数据库系统,其特征在于,所述第一副本数据库节点具有有效期,在当前副本数据库节点作为第一副本数据库节点的有效期内,重新启动的所述当前副本数据库节点被选取作为第一副本数据库节点的概率高于其余副本数据库节点被选取作为第一副本数据库节点的概率。
5.根据权利要求3所述的多副本数据库系统,其特征在于,
所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第一副本数据库节点后,生成逻辑空日志,将所述逻辑空日志发送至所述第二副本数据库节点,在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息的个数,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务;
所述第二副本数据库节点还用于,在接收到所述第一副本数据库节点发送的逻辑空日志后,向所述第一副本数据库节点返回确认消息,并根据所述第一副本数据库节点发送的提交指示,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务。
6.根据权利要求5所述的多副本数据库系统,其特征在于,
所述第一副本数据库节点具体用于,判断接收到的所述确认消息的个数,当所述确认消息的个数大于所述第二副本数据库节点的半数与一之差时,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务,并向所述第二副本数据库节点发送提交指示。
7.根据权利要求3所述的多副本数据库系统,其特征在于,
所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第二副本数据库节点后,比较本地存储的逻辑日志与所述第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,回滚所述多余的逻辑日志相关的事务,并根据所述第一副本数据库节点发送的提交或回滚指示,提交或回滚未被提交的事务。
8.根据权利要求3所述的多副本数据库系统,其特征在于,
所述副本数据库节点还用于,在重新启动后,基于物理日志恢复数据,并在被选取作为第二副本数据库节点后,根据本地存储的逻辑日志,提交或回滚未被提交的事务,比较本地存储的逻辑日志与所述第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,并闪回所述多余的逻辑日志所针对的操作。
9.一种数据处理方法,应用于由多个副本数据库节点组成的多副本数据库系统,在所述多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,其特征在于,所述方法包括:
所述第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,以使所述第二副本数据库节点重放所述逻辑日志;
所述第一副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务;
所述第一副本数据库节点向所述第二副本数据库节点发送提交指示,以使所述第二副本数据库节点根据所述提交指示,提交所述包括数据写操作的事务。
10.根据权利要求9所述的数据处理方法,其特征在于,所述第一副本数据库节点根据接收到的所述确认消息,提交所述包括数据写操作的事务,包括:
所述第一副本数据库节点判断接收到的所述确认消息的个数,当所述确认消息的个数大于所述第二副本数据库节点的半数与一之差时,提交所述包括数据写操作的事务。
11.根据权利要求9或10所述的数据处理方法,其特征在于,还包括:
所述副本数据库节点在重新启动后,基于物理日志恢复数据;
所述副本数据库节点在被选取作为第一副本数据库节点后,生成逻辑空日志,将所述逻辑空日志发送至所述第二副本数据库节点;
所述副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息的个数,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务;
所述副本数据库节点向所述第二副本数据库节点发送提交指示,以使所述第二副本数据库节点根据所述提交指示,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务。
12.根据权利要求11所述的数据处理方法,其特征在于,所述副本数据库节点根据接收到的所述确认消息的个数,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务,包括:
所述副本数据库节点判断接收到的所述确认消息的个数,当所述确认消息的个数大于所述第二副本数据库节点的半数与一之差时,提交所述逻辑空日志之前的逻辑日志相关的未被提交的事务。
13.根据权利要求9或10所述的数据处理方法,其特征在于,还包括:
所述副本数据库节点在重新启动后,基于物理日志恢复数据;
所述副本数据库节点在被选取作为第二副本数据库节点后,比较本地存储的逻辑日志与所述第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志;
所述副本数据库节点回滚所述多余的逻辑日志相关的事务,并根据所述第一副本数据库节点发送的提交或回滚指示,提交或回滚未被提交的事务。
14.根据权利要求9或10所述的数据处理方法,其特征在于,还包括:
所述副本数据库节点在重新启动后,基于物理日志恢复数据;
所述副本数据库节点在被选取作为第二副本数据库节点后,根据本地存储的逻辑日志,提交或回滚未被提交的事务;
所述副本数据库节点比较本地存储的逻辑日志与所述第一副本数据库节点存储的逻辑日志,删除多余的逻辑日志,并闪回所述多余的逻辑日志所针对的操作。
15.一种电子设备,应用于由多个副本数据库节点组成的多副本数据库系统,在所述多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,其特征在于,所述电子设备包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以用于:
控制所述第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,以使所述第二副本数据节点库重放所述逻辑日志;
控制所述第一副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务;
控制所述第一副本数据库节点向所述第二副本数据库节点发送提交指示,以使所述第二副本数据库节点根据所述提交指示,提交所述包括数据写操作的事务。
16.一种计算机可读存储介质,应用于由多个副本数据库节点组成的多副本数据库系统,在所述多个副本数据库节点中包括:用于提供数据写服务的第一副本数据库节点和至少一个用于提供数据只读服务的第二副本数据库节点,在所述计算机可读存储介质上存储有指令,所述指令包括:
控制所述第一副本数据库节点将执行包括数据写操作的事务所生成的逻辑日志发送至所述第二副本数据库节点,以使所述第二副本数据节点库重放所述逻辑日志;
控制所述第一副本数据库节点在接收到所述第二副本数据库节点返回的确认消息后,根据接收到的所述确认消息,提交所述包括数据写操作的事务;
控制所述第一副本数据库节点向所述第二副本数据库节点发送提交指示,以使所述第二副本数据库节点根据所述提交指示,提交所述包括数据写操作的事务。
CN201911019765.9A 2019-10-24 2019-10-24 多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质 Active CN112711596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911019765.9A CN112711596B (zh) 2019-10-24 2019-10-24 多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911019765.9A CN112711596B (zh) 2019-10-24 2019-10-24 多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112711596A CN112711596A (zh) 2021-04-27
CN112711596B true CN112711596B (zh) 2023-10-27

Family

ID=75540461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911019765.9A Active CN112711596B (zh) 2019-10-24 2019-10-24 多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112711596B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114647531B (zh) * 2022-05-19 2022-07-29 武汉四通信息服务有限公司 故障解决方法、故障解决系统、电子设备及存储介质
CN115168367B (zh) * 2022-09-07 2022-11-25 太极计算机股份有限公司 一种大数据的数据配置方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436490A (zh) * 2010-10-28 2012-05-02 微软公司 多功能存储器内数据库恢复
CN109992628A (zh) * 2019-04-15 2019-07-09 深圳市腾讯计算机系统有限公司 数据同步的方法、装置、服务器及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10162710B2 (en) * 2016-11-28 2018-12-25 Sap Se Version space reconstruction during database initialization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436490A (zh) * 2010-10-28 2012-05-02 微软公司 多功能存储器内数据库恢复
CN109992628A (zh) * 2019-04-15 2019-07-09 深圳市腾讯计算机系统有限公司 数据同步的方法、装置、服务器及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
浅谈数据库故障的恢复技术;李晓翠;邢艳;郭姝;;科技传播(第03期);全文 *

Also Published As

Publication number Publication date
CN112711596A (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
US7499954B2 (en) Consistent reintegration of a failed primary instance
CN103077222B (zh) 机群文件系统分布式元数据一致性保证方法及系统
US9575849B2 (en) Synchronized backup and recovery of database systems
CN102891849B (zh) 业务数据同步方法、恢复方法及装置和网络设备
US8954645B2 (en) Storage writes in a mirrored virtual machine system
US20200019543A1 (en) Method, apparatus and device for updating data, and medium
CN110209735B (zh) 数据库备份方法、数据库备份装置、计算设备和存储介质
CN111753013B (zh) 分布式事务处理方法及装置
US20230041089A1 (en) State management methods, methods for switching between master application server and backup application server, and electronic devices
US20050283504A1 (en) Disaster recovery system suitable for database system
CN109542682B (zh) 一种数据备份方法、装置、设备和存储介质
JP3094888B2 (ja) 採番機構、データ整合性確認機構、トランザクション再実行機構及び分散トランザクション処理システム
CN112711596B (zh) 多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质
CN102945278A (zh) 一种数据库记录重做日志的方法和装置
CN115292407A (zh) 同步方法、设备及存储介质
CN110413687B (zh) 基于节点互证校验的分布式事务故障处理方法及相关设备
US9330153B2 (en) System, method, and computer readable medium that coordinates between devices using exchange of log files
US8156084B2 (en) Transfer of data from positional data sources to partitioned databases in restartable environments
CN112181723A (zh) 一种金融灾备方法、装置、存储介质及电子设备
US20100274758A1 (en) Data processing method, computer, and data processing program
CN112559496B (zh) 一种分布式数据库事务原子性实现方法及装置
US7194675B2 (en) Backup method, backup system, disk controller and backup program
CN115934742A (zh) 一种故障处理方法、装置、设备及存储介质
CN116107807A (zh) 数据库中数据备份时获取全局一致性点位的方法及装置
US8775371B2 (en) Synchronizing an auxiliary data system with a primary data system

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
TA01 Transfer of patent application right

Effective date of registration: 20210916

Address after: 310056 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou, Zhejiang

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211231

Address after: 310000 No. 12, Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310056 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou, Zhejiang

Applicant before: Alibaba (China) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant