日志包重演方法、装置、电子设备及存储介质制造方法及图纸

技术编号:32968916 阅读:11 留言:0更新日期:2022-04-09 11:30
本发明专利技术实施例公开了一种日志包重演方法、装置、电子设备及存储介质。所述方法包括:初始化集群中每个节点的内存对象,所述内存对象中加载有日志包,所述日志包关联于日志依赖信息;依次扫描各所述内存对象,在每次扫描过程中,根据当前扫描的内存对象对应的日志依赖信息确定最优待重演日志包;各内存对象扫描完毕之后,对最优待重演日志包进行重演。该方法通过初始化集群中每个节点的内存对象,并且每个日志包可以对应关联于一个日志依赖信息,在此基础上根据日志依赖信息确定最优待重演日志包,并在各内存对象扫描完毕之后,对最优待重演日志包进行重演,能够保证日志包根据日志依赖信息依次重演,从而提高了日志包重演的效率。率。率。

【技术实现步骤摘要】
日志包重演方法、装置、电子设备及存储介质


[0001]本专利技术实施例涉及数据库管理
,尤其涉及一种日志包重演方法、装置、电子设备及存储介质。

技术介绍

[0002]共享存储集群中的多个实例都可以访问、修改数据页,并且每个实例修改数据页产生的重做日志是分别生成、保存到当前实例的联机日志文件以及归档日志文件中。在共享存储集群重演重做日志等日志时,可能会出现节点中与重演日志相关联的归档日志文件不完整等情况,如节点中的归档日志文件缺失、或者被删除等情况,从而导致重演日志的进程无法顺利完成。
[0003]为了保证重演日志的进程可以顺利完成,在重演日志时,需要对节点中的归档日志文件完整性进行检查判断。目前,对节点中的归档日志文件完整性进行检查的方法是,扫描并解析所有的归档日志文件,检查与重演日志相关联的归档日志文件是否存在和完整。但是,上述方法需要解析大量的归档日志文件,效率不高。

技术实现思路

[0004]本专利技术实施例提供了一种日志包重演方法、装置、电子设备及存储介质,以提高日志包重演的效率。
[0005]第一方面,本专利技术实施例提供了一种日志包重演方法,包括:
[0006]初始化集群中每个节点的内存对象,所述内存对象中加载有日志包,所述日志包关联于日志依赖信息;
[0007]依次扫描各所述内存对象,在每次扫描过程中,根据当前扫描的内存对象对应的日志依赖信息确定最优待重演日志包;
[0008]各所述内存对象扫描完毕之后,对所述最优待重演日志包进行重演。/>[0009]第二方面,本专利技术实施例还提供了一种日志包重演装置,包括:
[0010]内存对象初始化模块,设置为初始化集群中每个节点的内存对象,所述内存对象中加载有日志包,所述日志包关联于日志依赖信息;
[0011]确定模块,设置为依次扫描各所述内存对象,在每次扫描过程中,根据当前扫描的内存对象对应的日志依赖信息确定最优待重演日志包;
[0012]重演模块,设置为各所述内存对象扫描完毕之后,对所述最优待重演日志包进行重演。
[0013]第三方面,本专利技术实施例还提供了一种电子设备,包括:
[0014]一个或多个处理器;
[0015]存储装置,用于存储一个或多个程序;
[0016]所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例提供的日志包重演方法。
[0017]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术实施例提供的日志包重演方法。
[0018]本专利技术实施例提供了一种日志包重演方法、装置、电子设备及存储介质,初始化集群中每个节点的内存对象,内存对象中加载有日志包,日志包关联于日志依赖信息;在此基础上,依次扫描各所内存对象,在每次扫描过程中,根据当前扫描的内存对象对应的日志依赖信息确定最优待重演日志包;各内存对象扫描完毕之后,对最优待重演日志包进行重演。该方法通过初始化集群中每个节点的内存对象,并且每个日志包可以对应关联于一个日志依赖信息,在此基础上根据日志依赖信息确定最优待重演日志包,并在各内存对象扫描完毕之后,对最优待重演日志包进行重演,能够保证日志包根据日志依赖信息依次重演,从而提高了日志包重演的效率。
附图说明
[0019]图1为本专利技术实施例一提供的一种日志包重演方法的流程示意图;
[0020]图2为本专利技术实施例一提供的一种调整后的RLOG_PKG格式的示意图;
[0021]图3为本专利技术实施例一提供的一种内存对象初始化的示意图;
[0022]图4为本专利技术实施例二提供的一种日志包重演装置的结构示意图;
[0023]图5为本专利技术实施例三提供的一种电子设备的结构示意图。
具体实施方式
[0024]下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。
[0025]在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0026]本专利技术使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。
[0027]需要注意,本专利技术中提及的“第一”、“第二”等概念仅用于对相应内容进行区分,并非用于限定顺序或者相互依存关系。
[0028]需要注意,本专利技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0029]为了更好地理解本专利技术实施例,下面对相关术语进行介绍。
[0030]重做日志:即REDO日志,忠实记录了所有物理页的修改,在系统故障重启时,通过重做REDO日志,可以将数据库恢复到故障时的状态。
[0031]物理事务(Physical Transaction,简称PTX):数据库内部一系列修改物理数据页的操作的集合。
[0032]LSN:英文全称为Log Sequence Number,是指唯一标识每次修改数据页的操作或事务的日志序列号,其中LSN是由数据库系统自动维护的Bigint类型数值,具有自动递增、全局唯一的特性,每一个LSN值代表着数据库系统内部产生的一个物理事务。例如,本次修改数据页所对应的LSN值为1000,则下一次修改数据页所对应记录的LSN值为1001。
[0033]日志包(即可表示为RLOG_PKG):是指数据库保存日志的数据单元。其中,REDO日志包是指数据库保存REDO日志的数据单元,一个日志包内可保存一个或多个PTX产生的REDO日志,REDO日志中的每一条日志记录对应一个LSN。
[0034]日志包序号(即可表示为PKG_SEQNO):每个RLOG_PKG都有对应的序号属性,称之为日志包序号,日志包生成时按照日志包序号连续递增。
[0035]共享存储集群的多个实例都可以访问、修改数据页,并且每个实例修改数据页产生的REDO日志是分别生成、保存到当前实例的联机日志文件以及归档日志文件中。数据页头部中存在FRESH_EP字段,实例在修改数据页时,会将实例号记录到该数据页的FRESH_EP字段中,不管是从磁盘加载数据页,还是已经刷盘的数据页,都可以从数据页头部中读取到FRESH_EP信息,明确数据页的前序修改节点号。
[003本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种日志包重演方法,其特征在于,包括:初始化集群中每个节点的内存对象,所述内存对象中加载有日志包,所述日志包关联于日志依赖信息;依次扫描各所述内存对象,在每次扫描过程中,根据当前扫描的内存对象对应的日志依赖信息确定最优待重演日志包;各所述内存对象扫描完毕之后,对所述最优待重演日志包进行重演。2.根据权利要求1所述的方法,其特征在于,初始化集群中每个节点的内存对象,包括:对于每个节点,依次扫描该节点的归档日志文件链表中的归档日志文件中的日志包;将首个满足以下条件的日志包加载至该节点的内存对象中:日志包的日志包序号大于已重演的第一最大日志包序号,并且该日志包中的最大LSN值大于已重演的第一最大LSN。3.根据权利要求2所述的方法,其特征在于,在初始化每个节点的内存对象之前,还包括:对于每个节点,记录该节点已重演的第一最大日志包序号以及第一最大LSN;扫描该节点上的归档日志文件,每个归档日志文件的头信息中包括该归档日志文件中的日志包的第二最大日志包序号以及第二最大LSN;若所述第二最大日志包序号大于所述第一最大日志包序号,且所述第二最大LSN大于所述第一最大LSN,则将该归档日志文件添加至该节点的归档日志文件链表中。4.根据权利要求1所述的方法,其特征在于,还包括:根据日志包中记录的修改数据页的节点号和相应节点对应的最大LSN值,确定每个日志包的日志依赖信息。5.根据权利要求1所述的方法,其特征在于,根据当前扫描的内存对象对应的日志依赖信息确定最优待重演日志包,包括:依次扫描当前扫描的内存对象对应的日志依赖信息中的每个数据组,对于当前扫描的数据组,从各所述内存对象中找到与当前扫描的数据组中的节点号一致的目标内存对象,以及所述目标内存对象对应的已重演的第一最大LSN;若所述目标内存对象对应的已重演的第一最大LSN大于或等于当前扫描的数据组中的LSN值,则当前扫描的数据组对应的日志已重演,否则,当前扫描的数据组对应的日志未重演;若所述当前扫描的内存对象对应的日志依赖信息中存在一个或多个数据组对应的日志未重演,则继续扫描下一个内存对象;若所述当前扫描的内存对象对应的日志依赖信息中的每个数据组对应的日志均已重演,则根据当前扫描的内存对象更新目标节点号、目标最小LSN以及目标最大LSN,其中,所述目标节点号、所述目标最小LSN以及所述目标最大LSN分别用于记录最优待重演日志包所在的节点号、最优待重演日志包内的最小LSN值以及最优待重演日志包内的最大LSN值。6.根据权利要求5所述的方法,其特征在于,根据当前扫描的内存对象更新目标节点号、目标最小LSN以及目标最大LSN,包括:若所述目标节点号为初始值,则将所述目标节点号设置为当前扫描的内存对象所在的节点号,将目标最小LSN设为当前扫描的内存对象加载的日志包中的最小LSN,将目标最大LSN...

【专利技术属性】
技术研发人员:王海龙蔡池池韩朱忠
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:

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

1