数据库日志处理的方法、装置、电子设备及介质与流程

文档序号:36255780发布日期:2023-12-03 16:59阅读:51来源:国知局
数据库日志处理的方法与流程

本公开涉及数据库、分布式存储和云计算,尤其涉及一种数据库日志处理的方法、装置、电子设备及介质。


背景技术:

1、随着数据存储规模越来越大、数据安全性要求越来越高以及数据高并发查询场景下需要及时响应等,对于数据存储服务的性能要求也越来越高。分布式存储架构有助于提升数据的存储容量、容灾性、高可用性和灵活扩展性等,诸如mysql、oracle、redis、mongodb等数据库基于分布式存储技术,大多采用主从模式架构、分片集群架构、副本集架构等实现数据存储。

2、在实现本公开构思的过程中,发明人发现相关技术中至少存在如下技术问题:相关技术中,用户存在需要对数据回退到历史某个时刻的需求,这就要求数据库能够支持数据回退至任意时间点;在操作日志(例如在mongodb数据库中采用oplog进行表示)对应的有限存储空间中通常会将新数据覆盖一些历史数据,即通过对一些历史数据的存储空间进行回收来存放新数据,然而,随着数据库中数据操作(诸如新增、删除、查询或修改等操作)比较频繁,这样可能会导致一些历史数据还没来得及被备份就被删除,以进行存储空间释放并存放不断更新的新数据,这样由于存在操作日志的缺失,导致数据库无法支持数据回退至任意时间点。


技术实现思路

1、为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种数据库日志处理的方法、装置、电子设备及介质。

2、第一方面,本公开的实施例提供一种数据库日志处理的方法。上述方法包括:获取数据库中操作日志的删除锁属性的属性值;上述删除锁属性用于描述上述数据库中操作日志的备份状态;根据上述属性值,确定上述数据库的增量操作日志;将上述增量操作日志进行备份处理;在上述增量操作日志备份成功的情况下,更新上述删除锁属性的属性值;根据上述删除锁属性的属性值,进行操作日志存储空间的回收。

3、根据本公开的实施例,上述备份状态包括:已备份操作日志的时间信息;上述删除锁属性的属性值包括:已备份操作日志的最新时间戳;或者,上述删除锁属性的属性值包括:已备份操作日志的覆盖时段信息。其中,上述删除锁的属性值是随着增量操作日志的备份而动态更新的,在上述增量操作日志备份之前和备份期间,上述属性值采用更新前的结果;在上述增量操作日志备份成功之后,上述属性值采用更新后的结果。

4、根据本公开的实施例,在上述属性值包括已备份操作日志的最新时间戳的情况下,根据上述删除锁属性的属性值,进行操作日志存储空间的回收,包括:针对待回收的目标操作日志存储空间,获取上述目标操作日志存储空间中操作日志的时间戳;确定上述时间戳的时序最新值与上述最新时间戳的时间先后关系;在上述时间先后关系表示上述时序最新值早于上述最新时间戳或等于上述最新时间戳的情况下,将上述目标操作日志存储空间中的操作日志删除;在上述时间先后关系表示上述时序最新值晚于上述最新时间戳的情况下,保留上述目标操作日志存储空间。

5、根据本公开的实施例,在上述属性值包括已备份操作日志的覆盖时段信息的情况下,根据上述删除锁属性的属性值,进行操作日志存储空间的回收,包括:针对待回收的目标操作日志存储空间,获取上述目标操作日志存储空间中操作日志的时间戳所处时段;确定上述时间戳所处时段与上述覆盖时段信息的覆盖时段之间的区间关系;在上述区间关系表示:上述时间戳所处时段为上述覆盖时段的子集或全集的情况下,将上述目标操作日志存储空间中的操作日志删除;在上述区间关系表示:上述时间戳所处时段与上述覆盖时段之间具有交叉时段的情况下,将上述交叉时段对应的操作日志删除,并保留其余时段内的操作日志;在上述区间关系表示:上述时间戳所处时段与上述覆盖时段之间无交集的情况下,保留上述目标操作日志存储空间。

6、根据本公开的实施例,根据上述属性值,确定上述数据库的增量操作日志,包括:在上述数据库中筛选日志时间戳在上述最新时间戳时序之后的第一操作日志;选取上述第一操作日志的部分或全部作为上述增量操作日志。或者,根据上述属性值,确定上述数据库的增量操作日志,包括:在上述数据库中筛选日志时间戳在上述覆盖时段信息之外的第二操作日志;选取上述第二操作日志的部分或全部作为上述增量操作日志。

7、根据本公开的实施例,在上述增量操作日志备份成功的情况下,更新上述删除锁属性的属性值,包括:在上述增量操作日志备份成功的情况下,将上述增量操作日志的时间戳中的时序最新值确定为属性值更新结果,或者,将上述增量操作日志的新增覆盖时段与已备份操作日志的已有覆盖时段的并集覆盖时段确定为属性值更新结果;将上述删除锁属性的属性值更新为上述属性值更新结果。

8、根据本公开的实施例,上述方法还包括:将更新上述删除锁属性的属性值的更新操作记录在上述数据库的操作日志中;其中,上述数据库为采用主从模式架构、副本集架构、分片集群架构、副本集与分片集群的结合架构中的一种所搭建的存储集群中主存储节点对应的数据库,上述操作日志用于在主存储节点和从存储节点之间进行同步;在第一从存储节点切换为主存储节点的状态下,对上述第一从存储节点的数据库进行操作日志备份和操作日志存储空间的回收处理。

9、根据本公开的实施例,上述方法还包括:接收操作回退请求,上述操作回退请求携带有指示回退到的定位信息;在上述操作日志存储空间中查询与上述定位信息对应的历史操作日志;在查询不到历史操作日志的情况下,从备份的操作日志中查询与上述定位信息对应的历史操作日志;根据上述历史操作日志,确定上述定位信息对应的数据状态;根据上述数据状态生成操作回退结果。

10、第二方面,本公开的实施例提供一种数据库日志处理的装置。上述装置包括:属性值获取模块、增量日志确定模块、备份模块、属性值更新模块和存储空间回收模块。上述属性值获取模块用于获取数据库中操作日志的删除锁属性的属性值;上述删除锁属性用于描述上述数据库中操作日志的备份状态。上述增量日志确定模块用于根据上述属性值,确定上述数据库的增量操作日志。上述备份模块用于将上述增量操作日志进行备份处理。上述属性值更新模块用于在上述增量操作日志备份成功的情况下,更新上述删除锁属性的属性值。上述存储空间回收模块用于根据上述删除锁属性的属性值,进行操作日志存储空间的回收。

11、第三方面,本公开的实施例提供了一种电子设备。上述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上所述的数据库日志处理的方法。

12、第四方面,本公开的实施例提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的数据库日志处理的方法。

13、本公开实施例提供的上述技术方案至少具有如下优点的部分或全部:

14、通过给操作日志设置删除锁属性,该删除锁属性用于描述数据库中操作日志的备份状态,该备份状态能够指示哪些操作日志是已经备份完成的,也就能够明确指示针对已经备份完成的操作日志才可以删除,实现存储空间的回收;基于上述删除锁属性的设置,有效构建了操作日志与最新备份状态、能否进行存储空间回收对应的联系,从而在操作日志不断产生的过程中,基于增量备份的方式,通过当前删除锁属性的属性值来确定需要在已经备份操作日志的基础上继续进行增量备份的增量操作日志,并在增量操作日志成功备份的基础上,更新删除锁的属性值而得到最新的备份状态;同时可以基于各个时刻下的删除锁属性来执行操作日志存储空间的回收,不论操作日志更新如何频繁,总能保证操作日志在存储的过程中回收部分的操作日志是已经备份过的,实现数据库的操作日志的实时完整备份,从而满足数据回退至任意时间点的需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1