CN110807064B - Rac分布式数据库集群***中的数据恢复装置 - Google Patents
Rac分布式数据库集群***中的数据恢复装置 Download PDFInfo
- Publication number
- CN110807064B CN110807064B CN201911032746.XA CN201911032746A CN110807064B CN 110807064 B CN110807064 B CN 110807064B CN 201911032746 A CN201911032746 A CN 201911032746A CN 110807064 B CN110807064 B CN 110807064B
- Authority
- CN
- China
- Prior art keywords
- recovery
- log
- service
- recovered
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种RAC分布式数据库集群***中的数据恢复装置,应用于RAC分布式数据库集群***中每个数据库节点,包括:控制子服务,用于获取RAC分布式数据库集群***的故障处理请求,控制日志扫描子服务和恢复执行子服务的执行;日志扫描子服务,用于根据控制子服务发送的日志扫描命令,联合多个数据库节点的日志记录,确定需要恢复的数据项和恢复顺序,生成恢复日志;恢复执行子服务,用于基于控制子服务发送的恢复执行命令,根据恢复日志,对需要恢复的数据项执行数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘。可实现RAC分布式数据库集群***中的数据恢复,提升RAC分布式数据库集群***的高可用性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种RAC分布式数据库集群***中的数据恢复装置。
背景技术
高可用(High Availability)是RAC(real application clusters,实时应用集群)分布式数据库集群***架构设计中必须考虑的因素之一,它通常是指,通过设计减少***不能提供服务的时间。如果一台***能够不间断的提供服务,那么这台***的可用性据说100%。那如果***每运行100个时间单位,出现1个时间单位无法提供服务,那么该台***的可用性是99%。
为实现RAC分布式数据库集群***高可用,其架构设计的核心准则是提供冗余。***需要全天候24小时不间断运行,则需要相应的冗余机制,以防某台机器宕掉时无法访问,而冗余则可以通过部署至少两台服务器构成一个集群实现服务高可用。
通常场景下使用的数据库***冗余机制,有“一主多备”“两地三中心”等方式,对数据库***提供多种冗余备份方式,针对业务可用性需求提供有效高可用方案,但是,现有技术并没有提供一种能够有效提高RAC分布式数据库集群***的高可用性的数据恢复方案。
发明内容
针对现有技术存在的问题,本发明实施例提供一种RAC分布式数据库集群***中的数据恢复装置。
本发明实施例提供一种RAC分布式数据库集群***中的数据恢复装置,应用于RAC分布式数据库集群***中每个数据库节点,包括:控制子服务、日志扫描子服务和恢复执行子服务;
所述控制子服务,用于获取RAC分布式数据库集群***的故障处理请求,向所述日志扫描子服务发送日志扫描命令;
所述日志扫描子服务,用于若接收到所述控制子服务发送的日志扫描命令,则联合RAC分布式数据库集群***中多个数据库节点的日志记录,确定需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志;
所述控制子服务,还用于若检测到所述日志扫描子服务已生成恢复日志,则向所述恢复执行子服务发送恢复执行命令;
所述恢复执行子服务,用于若接收到所述控制子服务发送的恢复执行命令,则按照所述恢复日志中需要恢复的数据项的恢复顺序,对所述恢复日志中需要恢复的数据项执行数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘。
可选地,所述控制子服务,还用于
与所述恢复执行子服务保持通信,记录所述恢复执行子服务执行的数据恢复操作已完成恢复的数据项的内容;若检测到所述恢复执行子服务完成对所述需要恢复的数据项执行数据恢复操作,则将所述恢复执行子服务执行的数据恢复操作已完成恢复的数据项的内容、发送给RAC分布式数据库集群***,以使RAC分布式数据库集群***将已完成恢复的数据项在全局数据资源管理的状态、从不可用状态转换为可用状态。
可选地,所述恢复执行子服务,具体用于
若接收到所述控制子服务发送的恢复执行命令,所述恢复执行命令中携带有RAC分布式数据库集群***的故障数据库节点,则开启与所述故障数据库节点的数据库连接和恢复事务,在所述恢复事务内、按照所述恢复日志中需要恢复的数据项的恢复顺序,对所述恢复日志中需要恢复的数据项执行数据恢复操作。
可选地,所述日志扫描子服务,具体用于
若接收到所述控制子服务发送的日志扫描命令,所述日志扫描命令中携带有RAC分布式数据库集群***的故障数据库节点,则针对所述故障数据库节点的日志记录,联合RAC分布式数据库集群***中除了所述故障数据库节点之外的其他健康数据库节点的日志记录,对日志记录进行扫描和过滤,确定需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志。
可选地,所述日志扫描子服务,包括:
扫描单元,用于若接收到所述控制子服务发送的日志扫描命令,所述日志扫描命令中携带有RAC分布式数据库集群***的故障数据库节点,则对所述故障数据库节点的日志记录进行扫描,将所述故障数据库节点的日志记录中所有已完成修改且没有写入磁盘的数据项作为需要恢复的数据项;对于所述故障数据库节点的日志记录中每一条需要恢复的数据项,判断当前需要恢复的数据项的redo记录的数据项修改是否包括跨数据库节点,若是,则将当前需要恢复的数据项的redo记录存入跨节点日志记录列表中,若否,则将当前需要恢复的数据项的redo记录存入单节点日志记录列表中;对所述故障数据库节点的日志记录中的所有数据项扫描完成后,获取跨节点日志记录列表中每一个数据项的redo记录的数据项修改所包括的跨数据库节点的日志记录进行扫描,将所扫描的跨数据库节点的日志记录中所述需要恢复的数据项的redo记录存入跨节点日志记录列表中;
排序单元,用于将单节点日志记录列表中的所有需要恢复的数据项的redo记录与跨节点日志记录列表中的所有需要恢复的数据项的redo记录进行组合与排序,确定需要恢复的数据项的恢复顺序;
生成单元,用于根据需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志。
可选地,所述日志记录为预写WAL日志,每个预写WAL日志包括:事务ID号和WAL日志序列号,其中,所述事务ID号描述了数据库事务开始的顺序,所述WAL日志序列号描述了数据库事务结束的顺序;
相应地,所述排序单元,具体用于
根据WAL日志序列号的大小,将单节点日志记录列表中的所有需要恢复的数据项的redo记录和跨节点日志记录列表中的所有需要恢复的数据项的redo记录组合在一起进行排序,确定需要恢复的数据项的恢复顺序。
可选地,所述控制子服务,还用于
若检测到所述恢复执行子服务对所述需要恢复的数据项执行数据恢复操作失败,则重新向所述日志扫描子服务发送日志扫描命令,以控制所述日志扫描子服务的执行,进而触发所述恢复执行子服务执行新一轮的数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘。
可选地,所述控制子服务为一主多备形式,若作为主控服务的控制子服务所在数据库节点发生宕机或异常,则从所述RAC分布式数据库集群***中未发生宕机或异常的所有数据库节点的作为备用服务的控制子服务中,选择一个控制子服务作为新的主控服务。
本发明实施例提供的RAC分布式数据库集群***中的数据恢复装置,通过控制子服务获取RAC分布式数据库集群***的故障处理请求,控制日志扫描子服务和恢复执行子服务的执行,日志扫描子服务根据控制子服务发送的日志扫描命令,联合多个数据库节点的日志记录,确定需要恢复的数据项和恢复顺序,生成恢复日志,恢复执行子服务基于控制子服务发送的恢复执行命令,根据恢复日志对需要恢复的数据项执行数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘,由此,能够实现RAC分布式数据库集群***中的数据恢复,有效提升RAC分布式数据库集群***的高可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种RAC分布式数据库集群***中的数据恢复装置的结构示意图;
图2为图1中的恢复执行子服务执行数据恢复操作的具体流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明一实施例提供的一种RAC分布式数据库集群***中的数据恢复装置的结构示意图,本实施例的RAC分布式数据库集群***中的数据恢复装置应用于RAC分布式数据库集群***中每个数据库节点,如图1所示,本实施例的数据库RAC集群***,包括:控制子服务1、日志扫描子服务2和恢复执行子服务3;
所述控制子服务1,用于获取RAC分布式数据库集群***的故障处理请求,向所述日志扫描子服务2发送日志扫描命令;
所述日志扫描子服务2,用于若接收到所述控制子服务1发送的日志扫描命令,则联合RAC分布式数据库集群***中多个数据库节点的日志记录,确定需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志;
所述控制子服务1,还用于若检测到所述日志扫描子服务2已生成恢复日志,则向所述恢复执行子服务3发送恢复执行命令;
所述恢复执行子服务3,用于若接收到所述控制子服务1发送的恢复执行命令,则按照所述恢复日志中需要恢复的数据项的恢复顺序,对所述恢复日志中需要恢复的数据项执行数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘。
在具体应用中,本实施例所述控制子服务为一主多备形式,若作为主控服务的控制子服务所在数据库节点发生宕机或异常,则从所述RAC分布式数据库集群***中未发生宕机或异常的所有数据库节点的作为备用服务的控制子服务中,选择一个控制子服务作为新的主控服务。
可以理解的是,RAC分布式数据库集群***的故障处理请求中可以携带有RAC分布式数据库集群***的故障数据库节点,所述控制子服务在检测到异常的情况下,跟RAC分布式数据库集群***建立通信和协调机制,控制所述日志扫描子服务和所述恢复执行子服务的执行,所述日志扫描子服务和所述恢复执行子服务接收所述控制子服务的命令,执行具体的操作流程,实现数据恢复。
在具体应用中,所述恢复执行子服务3,可具体用于
若接收到所述控制子服务发送的恢复执行命令,所述恢复执行命令中携带有RAC分布式数据库集群***的故障数据库节点,则开启与所述故障数据库节点的数据库连接和恢复事务,在所述恢复事务内、按照所述恢复日志中需要恢复的数据项的恢复顺序,对所述恢复日志中需要恢复的数据项执行数据恢复操作。
可以理解的是,本实施例所述恢复执行子服务3在接收到了所述日志扫描子服务2的待恢复数据的恢复日志后,能够以数据库事务的方式执行数据恢复。
可以理解的是,RAC分布式数据库集群***中的数据库节点在出现宕机/故障的情况下,未完成的事务属于终止的状态不需要进行恢复。RAC分布式数据库集群***中的数据库节点在出现宕机/故障的情况下,可能存在已完成修改、但未写入磁盘的数据位于RAC分布式数据库集群***的缓存中,所有已完成修改的数据,都有对应修改内容的预写WAL(Write Ahead Log)日志写入了磁盘,可以根据WAL日志进行数据恢复。
在具体应用中,所述日志扫描子服务2,可具体用于
若接收到所述控制子服务发送的日志扫描命令,所述日志扫描命令中携带有RAC分布式数据库集群***的故障数据库节点,则针对所述故障数据库节点的日志记录,联合RAC分布式数据库集群***中除了所述故障数据库节点之外的其他健康数据库节点的日志记录,对日志记录进行扫描和过滤,确定需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志。
可以理解的是,RAC分布式数据库集群***中,各个数据库节点记录各自的日志,位于共享存储的不同目录下。在出现了机器宕机/故障的情况下,所述日志扫描子服务2能够获取到全部数据库节点的日志记录,进行扫描并排序和过滤。
可以理解的是,本实施例所述恢复执行子服务3执行数据恢复操作的过程中不影响其他健康数据库节点的正常运行。在RAC分布式数据库集群***中,任一健康节点的恢复执行子服务3都有能力根据日志扫描子服务2的处理结果执行数据恢复。所述控制子服务1可通过特定的机制,选取一健康节点的恢复执行子服务3执行数据恢复流程。
可以理解的是,本实施例所述恢复执行子服务3,在数据库恢复事务中,逐条针对每一个需要恢复的数据项,依次执行数据恢复操作。在执行完毕所有的数据恢复项之后,将内存中已恢复的数据项内容写入磁盘,数据恢复完成,可以参考图2。
可以理解的是,本实施例所述RAC分布式数据库集群***中的数据恢复装置,在出现了机器宕机/故障的情况下,扫描多数据库节点的日志记录而后进行合理的排序,确定需要恢复的数据内容和顺序,并执行恢复,能够允许***内多个节点互为备份,且故障与恢复的流程不影响正常业务的运行,能够有效提高***的高可用性。
本发明实施例提供的RAC分布式数据库集群***中的数据恢复装置,通过控制子服务获取RAC分布式数据库集群***的故障处理请求,控制日志扫描子服务和恢复执行子服务的执行,日志扫描子服务根据控制子服务发送的日志扫描命令,联合多个数据库节点的日志记录,确定需要恢复的数据项和恢复顺序,生成恢复日志,恢复执行子服务基于控制子服务发送的恢复执行命令,根据恢复日志对需要恢复的数据项执行数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘,由此,能够实现RAC分布式数据库集群***中的数据恢复,有效提升RAC分布式数据库集群***的高可用性。
进一步地,所述日志扫描子服务2,可以包括:
扫描单元,用于若接收到所述控制子服务发送的日志扫描命令,所述日志扫描命令中携带有RAC分布式数据库集群***的故障数据库节点,则对所述故障数据库节点的日志记录进行扫描(即第一轮扫描),将所述故障数据库节点的日志记录中所有已完成修改且没有写入磁盘的数据项作为需要恢复的数据项;对于所述故障数据库节点的日志记录中每一条需要恢复的数据项,判断当前需要恢复的数据项的redo记录的数据项修改是否包括跨数据库节点,若是,则将当前需要恢复的数据项的redo记录存入跨节点日志记录列表中,若否,则将当前需要恢复的数据项的redo记录存入单节点日志记录列表中;对所述故障数据库节点的日志记录中的所有数据项扫描完成后,获取跨节点日志记录列表中每一个数据项的redo记录的数据项修改所包括的跨数据库节点的日志记录进行扫描(即第二轮扫描),将所扫描的跨数据库节点的日志记录中所述需要恢复的数据项的redo记录存入跨节点日志记录列表中;
排序单元,用于将单节点日志记录列表中的所有需要恢复的数据项的redo记录与跨节点日志记录列表中的所有需要恢复的数据项的redo记录进行组合与排序,确定需要恢复的数据项的恢复顺序;
生成单元,用于根据需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志。
可以理解的是,在对所述故障数据库节点的日志记录进行扫描的过程中,所有已完成修改并且写入磁盘的数据项不需要执行恢复;所有未完成修改的数据项不需要执行恢复;所有已完成修改并且没有写入磁盘的数据项需要执行恢复。
在具体应用中,所述日志记录可以为预写WAL日志,每个预写WAL日志包括:事务ID(标识)号和WAL日志序列号,其中,所述事务ID号描述了数据库事务开始的顺序,所述WAL日志序列号描述了数据库事务结束的顺序;
相应地,所述排序单元,可用于
根据WAL日志序列号的大小,将单节点日志记录列表中的所有需要恢复的数据项的redo记录和跨节点日志记录列表中的所有需要恢复的数据项的redo记录组合在一起进行排序,确定需要恢复的数据项的恢复顺序。
具体地,所述排序单元可以根据WAL日志序列号的大小,由小到大将单节点日志记录列表中的所有需要恢复的数据项的redo记录和跨节点日志记录列表中的所有需要恢复的数据项的redo记录组合在一起进行排序,确定需要恢复的数据项的恢复顺序。即,可以首先执行WAL日志序列号较小的数据项的恢复,而后执行WAL日志序列号较大的数据项的恢复。如果存在多个待恢复的故障节点,那么可依照全局统一管理的WAL日志序列号,确定唯一的数据项恢复顺序。
可以理解的是,数据恢复流程对于每一个数据项,同时需要基板数据和改动WAL日志,在基板数据的基础上redo WAL日志所描述的改动内容,可以实现恢复数据的目的。本实施例采用存储设备中的文件作为恢复数据流程中的基板数据。
举例来说,在RAC分布式数据库集群***中,允许一个数据项L首先被数据库节点A修改并提交,且在所修改数据项未写入磁盘的情况下通过网络传递给另一个数据库节点B,由节点B继续修改以执行数据库事务。此种数据传递可能涉及两个数据库节点,也可能涉及多个数据库节点。以两个数据库节点A和B为例,需要同时获取数据库节点A、数据库节点B对于数据项L的修改redo记录。
可以理解的是,一个数据项的恢复,可能涉及单个数据库节点的日志(对应上述单节点日志记录列表),也可能涉及多个数据库节点的日志(对应上述跨节点日志记录列表)。针对涉及多个数据库节点的情况,在第二轮扫描中,需要跨节点扫描所有需要恢复数据项的恢复日志记录。
因为针对数据项L的恢复过程中,在磁盘存储中的数据项L的基础上,需要首先redo数据库节点A上关于数据项L的WAL日志描述内容,然后redo数据库节点B上关于数据项L的WAL日志描述内容,如此才能完整地对数据项L进行数据恢复。因此需要确定数据项L需要被恢复,然后确定L需要恢复的顺序是从数据库节点A的WAL日志信息到数据库节点B的WAL日志信息,其次扫描数据库节点A的WAL日志和数据库节点B的WAL日志中有关L数据项的改动内容(redo记录)。
为了减少日志扫描的深度(扫描数据量),加快日志扫描的速度与简化日志组合的算法复杂度,在本实施例中,当一个数据项L由数据库节点A修改并提交,且在所修改数据项未写入磁盘的情况下通过网络传递给另一个数据库节点B,由数据库节点B继续修改以执行数据库事务的情况下,需要做如下处理:在数据库节点A的WAL日志中做如下意义的描述记录:数据项L传递给数据库节点B,且数据项L完成修改但未写入磁盘。同时在传输数据项L给数据库节点B的消息包中,标明此数据项为完成修改但未写入磁盘的数据项;在数据库节点B收到有“完成修改但未写入磁盘的数据项”的描述的情况下,需在数据库节点B的WAL日志中记录:收到数据库节点A发送的完成修改但未写入磁盘的数据项L。
可以理解的是,通过一定的原则在数据库节点A的WAL日志和数据库节点B的WAL日志中添加数据库事务号和WAL日志序列号,由此可以快速确定数据块L需要执行redo的完整流程和内容。
进一步地,所述控制子服务1,还可用于
与所述恢复执行子服务3保持通信,记录所述恢复执行子服务3执行的数据恢复操作已完成恢复的数据项的内容;若检测到所述恢复执行子服务3完成对所述需要恢复的数据项执行数据恢复操作,则将所述恢复执行子服务3执行的数据恢复操作已完成恢复的数据项的内容、发送给RAC分布式数据库集群***,以使RAC分布式数据库集群***将已完成恢复的数据项在全局数据资源管理的状态、从不可用状态转换为可用状态。
可以理解的是,RAC分布式数据库集群***中,若一个数据库节点出现故障,那么此故障节点当前在全局资源管理中占有的数据项处于“被占用”或“不可用”状态。任何需要访问待恢复数据的请求都处于“被阻塞”状态,在待恢复数据项未完成恢复的情况下禁止以任何方式访问此种数据。此种控制方法由RAC分布式数据库集群***内部负责和执行。当故障节点的数据恢复执行完毕后,所述控制子服务1向RAC分布式数据库集群***的全局资源管理释放被故障节点占用的数据项。至此整个RAC分布式数据库集群***恢复正常,所有因为节点故障而导致“被阻塞”的流程可以继续执行。
本实施例中,所述控制子服务能够接收Uxdb SRAC发送的故障处理请求,并协调所述日志扫描子服务和所述恢复执行子服务的执行流程,按顺序指引所述日志扫描子服务和所述恢复执行子服务执行特定的操作;在数据恢复完成后,所述控制子服务能够与RAC分布式数据库集群***进行通信,汇报已完成的数据恢复内容,指引RAC分布式数据库集群***对故障节点下的因节点故障导致不可用的数据资源的管理信息进行必要的清理,使这样的数据重新处于可以被访问的状态。
进一步地,所述控制子服务1,还可用于
若检测到所述恢复执行子服务对所述需要恢复的数据项执行数据恢复操作失败,则重新向所述日志扫描子服务发送日志扫描命令,以控制所述日志扫描子服务的执行,进而触发所述恢复执行子服务执行新一轮的数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘。
可以理解的是,事务作为数据库***业务逻辑的基本单位,在一个事务内所执行的操作要么全部执行完毕,要么全部失效并回滚。当数据库恢复事务将全部的恢复事项执行完毕后,可以结束恢复事务。当执行恢复的节点正在执行过程中,如果由于人为或不可知的因素导致恢复节点故障,恢复事务不能全部完成,那么此次恢复执行子服务3对所述需要恢复的数据项执行数据恢复操作失败,本实施例所述控制子服务1能够检测到此种故障,并发起新一次的故障恢复流程。
本实施例所述RAC分布式数据库集群***中的数据恢复装置,实质上是一种在RAC分布式数据库集群***中高可用模型的应用,能够允许在RAC分布式数据库集群***中部分数据库节点宕机的情况下,在线根据多节点WAL日志进行完整的数据恢复,不干扰RAC分布式数据库集群***中未出现故障的现存数据库节点的运行状态;能够使整个数据恢复过程在1秒或数秒之内执行完毕,而RAC分布式数据库集群***的内部故障对外界透明、无感知。
本发明实施例提供的RAC分布式数据库集群***中的数据恢复装置,可以快速恢复RAC分布式数据库集群***的数据项的内容;可以在不影响RAC分布式数据库集群***正常运行的情况下执行数据库的数据恢复;可以做到数据恢复对外界(用户)无感知,待恢复的数据在完成恢复之前属于“被阻塞”状态,在完成恢复流程之后属于可用状态;可以使Uxdb SRAC***内各个数据库节点处于互为备份的状态,如果一部分节点出现了宕机/故障,那么可以在剩余节点上执行恢复流程,不需要额外地配置机器与资源作为备份机器,节约软硬件设备成本;能够有效提升RAC分布式数据库集群***的高可用性。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种RAC分布式数据库集群***中的数据恢复装置,应用于RAC分布式数据库集群***中每个数据库节点,其特征在于,包括:控制子服务、日志扫描子服务和恢复执行子服务;
所述控制子服务,用于获取RAC分布式数据库集群***的故障处理请求,向所述日志扫描子服务发送日志扫描命令;
所述日志扫描子服务,用于若接收到所述控制子服务发送的日志扫描命令,则联合RAC分布式数据库集群***中多个数据库节点的日志记录,确定需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志;
所述控制子服务,还用于若检测到所述日志扫描子服务已生成恢复日志,则向所述恢复执行子服务发送恢复执行命令;
所述恢复执行子服务,用于若接收到所述控制子服务发送的恢复执行命令,则按照所述恢复日志中需要恢复的数据项的恢复顺序,对所述恢复日志中需要恢复的数据项执行数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘;
所述控制子服务,还用于与所述恢复执行子服务保持通信,记录所述恢复执行子服务执行的数据恢复操作已完成恢复的数据项的内容;若检测到所述恢复执行子服务完成对所述需要恢复的数据项执行数据恢复操作,则将所述恢复执行子服务执行的数据恢复操作已完成恢复的数据项的内容、发送给RAC分布式数据库集群***,以使RAC分布式数据库集群***将已完成恢复的数据项在全局数据资源管理的状态、从不可用状态转换为可用状态。
2.根据权利要求1所述的RAC分布式数据库集群***中的数据恢复装置,其特征在于,所述恢复执行子服务,具体用于
若接收到所述控制子服务发送的恢复执行命令,所述恢复执行命令中携带有RAC分布式数据库集群***的故障数据库节点,则开启与所述故障数据库节点的数据库连接和恢复事务,在所述恢复事务内、按照所述恢复日志中需要恢复的数据项的恢复顺序,对所述恢复日志中需要恢复的数据项执行数据恢复操作。
3.根据权利要求1所述的RAC分布式数据库集群***中的数据恢复装置,其特征在于,所述日志扫描子服务,具体用于
若接收到所述控制子服务发送的日志扫描命令,所述日志扫描命令中携带有RAC分布式数据库集群***的故障数据库节点,则针对所述故障数据库节点的日志记录,联合RAC分布式数据库集群***中除了所述故障数据库节点之外的其他健康数据库节点的日志记录,对日志记录进行扫描和过滤,确定需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志。
4.根据权利要求3所述的RAC分布式数据库集群***中的数据恢复装置,其特征在于,所述日志扫描子服务,包括:
扫描单元,用于若接收到所述控制子服务发送的日志扫描命令,所述日志扫描命令中携带有RAC分布式数据库集群***的故障数据库节点,则对所述故障数据库节点的日志记录进行扫描,将所述故障数据库节点的日志记录中所有已完成修改且没有写入磁盘的数据项作为需要恢复的数据项;对于所述故障数据库节点的日志记录中每一条需要恢复的数据项,判断当前需要恢复的数据项的redo记录的数据项修改是否包括跨数据库节点,若是,则将当前需要恢复的数据项的redo记录存入跨节点日志记录列表中,若否,则将当前需要恢复的数据项的redo记录存入单节点日志记录列表中;对所述故障数据库节点的日志记录中的所有数据项扫描完成后,获取跨节点日志记录列表中每一个数据项的redo记录的数据项修改所包括的跨数据库节点的日志记录进行扫描,将所扫描的跨数据库节点的日志记录中所述需要恢复的数据项的redo记录存入跨节点日志记录列表中;
排序单元,用于将单节点日志记录列表中的所有需要恢复的数据项的redo记录与跨节点日志记录列表中的所有需要恢复的数据项的redo记录进行组合与排序,确定需要恢复的数据项的恢复顺序;
生成单元,用于根据需要恢复的数据项和需要恢复的数据项的恢复顺序,生成恢复日志。
5.根据权利要求4所述的RAC分布式数据库集群***中的数据恢复装置,其特征在于,所述日志记录为预写WAL日志,每个预写WAL日志包括:事务ID号和WAL日志序列号,其中,所述事务ID号描述了数据库事务开始的顺序,所述WAL日志序列号描述了数据库事务结束的顺序;
相应地,所述排序单元,具体用于
根据WAL日志序列号的大小,将单节点日志记录列表中的所有需要恢复的数据项的redo记录和跨节点日志记录列表中的所有需要恢复的数据项的redo记录组合在一起进行排序,确定需要恢复的数据项的恢复顺序。
6.根据权利要求1所述的RAC分布式数据库集群***中的数据恢复装置,其特征在于,所述控制子服务,还用于
若检测到所述恢复执行子服务对所述需要恢复的数据项执行数据恢复操作失败,则重新向所述日志扫描子服务发送日志扫描命令,以控制所述日志扫描子服务的执行,进而触发所述恢复执行子服务执行新一轮的数据恢复操作,将所有已完成恢复的数据项的内容写入磁盘。
7.根据权利要求1所述的RAC分布式数据库集群***中的数据恢复装置,其特征在于,所述控制子服务为一主多备形式,若作为主控服务的控制子服务所在数据库节点发生宕机或异常,则从所述RAC分布式数据库集群***中未发生宕机或异常的所有数据库节点的作为备用服务的控制子服务中,选择一个控制子服务作为新的主控服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911032746.XA CN110807064B (zh) | 2019-10-28 | 2019-10-28 | Rac分布式数据库集群***中的数据恢复装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911032746.XA CN110807064B (zh) | 2019-10-28 | 2019-10-28 | Rac分布式数据库集群***中的数据恢复装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110807064A CN110807064A (zh) | 2020-02-18 |
CN110807064B true CN110807064B (zh) | 2022-08-26 |
Family
ID=69489363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911032746.XA Active CN110807064B (zh) | 2019-10-28 | 2019-10-28 | Rac分布式数据库集群***中的数据恢复装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110807064B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507720B (zh) * | 2020-04-22 | 2022-03-11 | 腾讯科技(深圳)有限公司 | 基于区块链的数据快照方法、装置及计算机可读存储介质 |
CN111880969B (zh) * | 2020-07-30 | 2024-06-04 | 上海达梦数据库有限公司 | 存储节点恢复方法、装置、设备和存储介质 |
CN111813607B (zh) * | 2020-09-08 | 2021-03-23 | 北京优炫软件股份有限公司 | 一种基于内存融合的数据库集群恢复日志处理*** |
CN112099996B (zh) * | 2020-09-21 | 2022-04-05 | 天津神舟通用数据技术有限公司 | 基于页面更新序号的数据库集群多节点重做日志恢复方法 |
CN112346913B (zh) * | 2020-12-01 | 2024-03-15 | 上海达梦数据库有限公司 | 数据恢复方法、装置、设备及存储介质 |
CN112540875B (zh) * | 2020-12-11 | 2023-06-06 | 四川新网银行股份有限公司 | 一种基于xtrabackup的mysql数据库备份、恢复校验可用性的方法 |
CN113791922B (zh) * | 2021-07-30 | 2024-02-20 | 济南浪潮数据技术有限公司 | 一种分布式存储***的异常处理方法、***及装置 |
CN116627769A (zh) * | 2022-09-26 | 2023-08-22 | 北京奥星贝斯科技有限公司 | 处理事务日志的方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
CN104866395A (zh) * | 2014-02-24 | 2015-08-26 | ***通信集团福建有限公司 | 数据备份方法及***、主备切换方法及*** |
CN105095248A (zh) * | 2014-05-04 | 2015-11-25 | ***通信集团公司 | 一种数据库集群***及其恢复方法、管理节点 |
CN105787135A (zh) * | 2016-04-11 | 2016-07-20 | 久盈世纪(北京)科技有限公司 | 一种用于数据库日志备份的方法与设备 |
CN106250055A (zh) * | 2016-07-12 | 2016-12-21 | 乐视控股(北京)有限公司 | 一种数据存储方法及*** |
CN106610876A (zh) * | 2015-10-23 | 2017-05-03 | 中兴通讯股份有限公司 | 数据快照的恢复方法及装置 |
US10083057B1 (en) * | 2016-03-29 | 2018-09-25 | EMC IP Holding Company LLC | Migration of active virtual machines across multiple data centers |
CN109344198A (zh) * | 2018-09-19 | 2019-02-15 | 国网浙江省电力有限公司嘉兴供电公司 | 基于MongoDB分布式集群架构的日志***及分片方法 |
CN109656896A (zh) * | 2018-11-28 | 2019-04-19 | 平安科技(深圳)有限公司 | 故障修复方法、装置及分布式存储***和存储介质 |
CN109783564A (zh) * | 2019-01-28 | 2019-05-21 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN110309215A (zh) * | 2019-04-24 | 2019-10-08 | 厦门网宿有限公司 | 一种数据处理方法、***及元数据更新方法、*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
US10270735B2 (en) * | 2014-10-10 | 2019-04-23 | Microsoft Technology Licensing, Llc | Distributed components in computing clusters |
US10180812B2 (en) * | 2016-06-16 | 2019-01-15 | Sap Se | Consensus protocol enhancements for supporting flexible durability options |
-
2019
- 2019-10-28 CN CN201911032746.XA patent/CN110807064B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
CN104866395A (zh) * | 2014-02-24 | 2015-08-26 | ***通信集团福建有限公司 | 数据备份方法及***、主备切换方法及*** |
CN105095248A (zh) * | 2014-05-04 | 2015-11-25 | ***通信集团公司 | 一种数据库集群***及其恢复方法、管理节点 |
CN106610876A (zh) * | 2015-10-23 | 2017-05-03 | 中兴通讯股份有限公司 | 数据快照的恢复方法及装置 |
US10083057B1 (en) * | 2016-03-29 | 2018-09-25 | EMC IP Holding Company LLC | Migration of active virtual machines across multiple data centers |
CN105787135A (zh) * | 2016-04-11 | 2016-07-20 | 久盈世纪(北京)科技有限公司 | 一种用于数据库日志备份的方法与设备 |
CN106250055A (zh) * | 2016-07-12 | 2016-12-21 | 乐视控股(北京)有限公司 | 一种数据存储方法及*** |
CN109344198A (zh) * | 2018-09-19 | 2019-02-15 | 国网浙江省电力有限公司嘉兴供电公司 | 基于MongoDB分布式集群架构的日志***及分片方法 |
CN109656896A (zh) * | 2018-11-28 | 2019-04-19 | 平安科技(深圳)有限公司 | 故障修复方法、装置及分布式存储***和存储介质 |
CN109783564A (zh) * | 2019-01-28 | 2019-05-21 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN110309215A (zh) * | 2019-04-24 | 2019-10-08 | 厦门网宿有限公司 | 一种数据处理方法、***及元数据更新方法、*** |
Non-Patent Citations (2)
Title |
---|
"Cluster head selection by randomness with data recovery in WSN";Singh D P 等;《CSI Transactions on ICT》;20140228;第97-107页 * |
"集群数据库***的日志复制和故障恢复";王嘉豪 等;《软件学报》;20161129;第476-489页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110807064A (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110807064B (zh) | Rac分布式数据库集群***中的数据恢复装置 | |
US10261853B1 (en) | Dynamic replication error retry and recovery | |
JP5102901B2 (ja) | データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム | |
CN1213376C (zh) | 用于被复制的服务器的协议 | |
US9189348B2 (en) | High availability database management system and database management method using same | |
JP2017084333A (ja) | 仮想マシンクラスタの監視方法及びシステム | |
CN106843749A (zh) | 写入请求处理方法、装置及设备 | |
CN110825562B (zh) | 数据备份方法、装置、***和存储介质 | |
CN107506266A (zh) | 一种数据恢复方法及*** | |
CN113326006A (zh) | 一种基于纠删码的分布式块存储*** | |
CN110291505A (zh) | 减少应用的恢复时间 | |
US20100085871A1 (en) | Resource leak recovery in a multi-node computer system | |
CN106445746A (zh) | 一种面向应急接替的容灾备份方法及装置 | |
CN113051428B (zh) | 一种摄像机前端存储备份的方法及装置 | |
US8537662B2 (en) | Global detection of resource leaks in a multi-node computer system | |
Kim et al. | Approaches to implementation of a repairable distributed recovery block scheme | |
EP4250119A1 (en) | Data placement and recovery in the event of partition failures | |
US20080250421A1 (en) | Data Processing System And Method | |
CN104407806A (zh) | 独立磁盘冗余阵列组硬盘信息的修改方法和装置 | |
JP3447347B2 (ja) | 障害検出方法 | |
CN106776142B (zh) | 一种数据存储方法以及数据存储装置 | |
CN111813607B (zh) | 一种基于内存融合的数据库集群恢复日志处理*** | |
US20060085425A1 (en) | Cluster spanning command routing | |
CN112202601B (zh) | 副本集模式运行的两物理节点mongo集群的应用方法 | |
CN117827544B (zh) | 热备份***、方法、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |