System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据库逻辑日志回放的方法、装置、电子设备及介质制造方法及图纸_技高网

数据库逻辑日志回放的方法、装置、电子设备及介质制造方法及图纸

技术编号:44405354 阅读:2 留言:0更新日期:2025-02-25 10:18
本发明专利技术提供了一种数据库逻辑日志回放的方法、装置、电子设备及介质,可应用于数据库技术领域。该方法包括:调用扫描线程,从扫描队列中扫描多个逻辑日志记录,逻辑日志记录是生成线程对逻辑日志进行解析后生成的;将多个逻辑日志记录中的第一逻辑日志记录存入与回放线程关联的第一缓存队列;调用回放线程,在确定与回放线程关联的第二缓存队列为空的情况下,从与回放线程关联的第一缓存队列中批量获取多个第一逻辑日志记录,并将多个第一逻辑日志记录存入与回放线程关联的第二缓存队列;从回放线程的第二缓存队列中逐个获取第一逻辑日志记录并逐个对第一逻辑日志记录对应的逻辑日志进行回放。

【技术实现步骤摘要】

本专利技术涉及数据库,更具体地,涉及一种数据库逻辑日志回放的方法、装置、电子设备及介质


技术介绍

1、数据库系统需要保证数据的可用性和可靠性,这就需要对数据库系统进行备份和恢复等操作。

2、当数据库发生故障或意外中断时,如系统崩溃、硬件故障等,利用逻辑日志可以将数据库恢复至故障前的状态。如,通过回放逻辑日志中的操作记录,可以逐步重建数据库中的数据,确保数据的完整性和一致性。

3、在高可用数据库集群中,主从节点通过日志传输保持同步。在高并发场景下,主节点需要处理大量的写请求,也就会产生较多的日志数据。主节点需要将产生的大量日志数据发送给从节点,以便从节点收到日志数据并对其进行日志回放和存储,保持主节点和从节点的数据同步、状态同步。

4、相关技术中,从节点通常利用多个逻辑日志恢复线程来恢复相关逻辑日志记录,但多个逻辑日志恢复线程在读取逻辑日志记录时,不可避免地会遇到队列读取冲突问题,进而导致数据恢复速度缓慢。


技术实现思路

1、有鉴于此,本专利技术提供了一种数据库逻辑日志回放的方法、装置、电子设备及介质。

2、本专利技术的一个方面提供了一种数据库逻辑日志回放的方法,包括:调用扫描线程,从扫描队列中扫描多个逻辑日志记录,其中,逻辑日志记录是生成线程对逻辑日志进行解析后生成的;将多个逻辑日志记录中的第一逻辑日志记录存入与回放线程关联的第一缓存队列,其中,第一逻辑日志记录对应的逻辑日志的日志类型为可并发类型;调用回放线程,在确定与回放线程关联的第二缓存队列为空的情况下,从与回放线程关联的第一缓存队列中批量获取多个第一逻辑日志记录,并将多个第一逻辑日志记录存入与回放线程关联的第二缓存队列;以及从回放线程的第二缓存队列中逐个获取第一逻辑日志记录并逐个对第一逻辑日志记录对应的逻辑日志进行回放。

3、根据本专利技术的实施例,该方法还包括:扫描队列设有第一队列锁,第一队列锁的作用范围为生成线程和扫描线程;与每个回放线程关联的第一缓存队列设有第二队列锁,第二队列锁的作用范围为扫描线程和回放线程;与每个回放线程关联的第二缓存队列未设置队列锁。

4、根据本专利技术的实施例,多个逻辑日志记录还包括日志类型为时序类型的第二逻辑日志记录;该方法还包括:调用扫描线程,按照第二逻辑日志记录的时序信息,对多个逻辑日志记录中的第二逻辑日志记录进行回放。

5、根据本专利技术的实施例,将多个逻辑日志记录中的第一逻辑日志记录存入回放线程的第一缓存队列,包括:从多个逻辑日志记录中确定至少一个第一逻辑日志记录;确定每个第一逻辑日志记录对应的逻辑日志在事务处理过程调用的哈希方法;根据哈希方法,确定与每个第一逻辑日志记录匹配的目标回放线程;以及将每个第一逻辑日志记录逐个存入与目标回放线程关联的第一缓存队列。

6、根据本专利技术的实施例,该方法还包括:在调用回放线程对第一逻辑日志记录对应的逻辑日志进行回放之后,将第一空结构形式的第一逻辑日志记录存入第一队列数组中与回放线程对应的第一子队列、将第二空结构形式的第一逻辑日志记录存入第二队列数组中与回放线程对应的第二子队列,其中,在第一队列数组中,每个回放线程对应一个第一子队列,在第二队列数组中,每个回放线程对应一个第二子队列;和/或,在调用扫描线程对第二逻辑日志记录对应的逻辑日志回放之后,将第一空结构形式的第二逻辑日志记录存入第一队列数组中与扫描线程对应的第三子队列。

7、根据本专利技术的实施例,该方法还包括:调用生成线程,从第一队列数组中获取第一空结构形式的第一逻辑日志记录和第二逻辑日志记录;响应于从第一队列数组中获取到第一空结构形式的第一逻辑日志记录和第二逻辑日志记录,对新的逻辑日志进行解析,并向扫描队列中存入新的逻辑日志记录。

8、根据本专利技术的实施例,生成线程关联有计数器;调用生成线程,从第一队列数组中获取第一空结构形式的第一逻辑日志记录和第二逻辑日志记录,包括:

9、调用生成线程,基于计数器记录的数量数据,交替从第一队列数组的第一子队列中获取第一空结构形式的第一逻辑日志记录、以及从第三子队列中获取第一空结构形式的第二逻辑日志记录,其中,在一次交替过程中,生成线程从第一队列数组的一个第一子队列中确定第一空结构形式的第一逻辑日志记录。

10、本专利技术的另一个方面提供了一种数据库逻辑日志回放的装置,包括:第一调用模块,用于调用扫描线程,从扫描队列中扫描多个逻辑日志记录,其中,逻辑日志记录是生成线程对逻辑日志进行解析后生成的;存储模块,用于将多个逻辑日志记录中的第一逻辑日志记录存入与回放线程关联的第一缓存队列,其中,第一逻辑日志记录对应的逻辑日志的日志类型为可并发类型;第二调用模块,用于调用回放线程,在确定与回放线程关联的第二缓存队列为空的情况下,从与回放线程关联的第一缓存队列中批量获取多个第一逻辑日志记录,并将多个第一逻辑日志记录存入与回放线程关联的第二缓存队列;以及回放模块,用于从回放线程的第二缓存队列中逐个获取第一逻辑日志记录并逐个对第一逻辑日志记录对应的逻辑日志进行回放。

11、本专利技术的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上的方法。

12、本专利技术的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,指令在被执行时用于实现如上的方法。

13、本专利技术的另一方面提供了一种计算机程序产品,计算机程序产品包括计算机可执行指令,指令在被执行时用于实现如上的方法。

14、本专利技术的实施例为每个回放线程新增了第二缓存队列,使得回放线程每次都从第二缓存队列中读取逻辑日志记录并进行回放,只在空的情况下从第一缓存队列获取多个第一逻辑日志记录,减少回放线程和扫描线程同时访问第一缓存队列的冲突概率,提高了回放速度和数据恢复速度。此外,第二缓存队列的批量获取机制也能够减少回放线程和扫描线程同时访问第一缓存队列的冲突概率;每个回放线程各自关联有对应的第一缓存队列和第二缓存队列减少了多个回放线程同时访问同一缓存队列的冲突概率,进而提高了回放速度和数据恢复速度。

本文档来自技高网...

【技术保护点】

1.一种数据库逻辑日志回放的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,多个所述逻辑日志记录还包括日志类型为时序类型的第二逻辑日志记录;所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述将多个所述逻辑日志记录中的第一逻辑日志记录存入回放线程的第一缓存队列,包括:

5.根据权利要求3所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求6所述的方法,其特征在于,所述生成线程关联有计数器;所述调用所述生成线程,从所述第一队列数组中获取第一空结构形式的所述第一逻辑日志记录和所述第二逻辑日志记录,包括:

8.一种数据库逻辑日志回放的装置,其特征在于,所述装置包括:

9.一种电子设备,包括:

10.一种计算机可读存储介质,其上存储有可执行指令,其特征在于,该指令被处理器执行时使处理器实现权利要求1至7中任一项所述的方法。

...

【技术特征摘要】

1.一种数据库逻辑日志回放的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,多个所述逻辑日志记录还包括日志类型为时序类型的第二逻辑日志记录;所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述将多个所述逻辑日志记录中的第一逻辑日志记录存入回放线程的第一缓存队列,包括:

5.根据权利要求3所述的方法,其特征在于,所述方法还包括:

6.根据权...

【专利技术属性】
技术研发人员:苏丁怡
申请(专利权)人:天津南大通用数据技术股份有限公司
类型:发明
国别省市:

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

1