数据库日志处理的方法技术

技术编号:39586612 阅读:8 留言:0更新日期:2023-12-03 19:38
本公开涉及一种数据库日志处理的方法

【技术实现步骤摘要】
数据库日志处理的方法、装置、电子设备及介质


[0001]本公开涉及数据库

分布式存储和云计算
,尤其涉及一种数据库日志处理的方法

装置

电子设备及介质


技术介绍

[0002]随着数据存储规模越来越大

数据安全性要求越来越高以及数据高并发查询场景下需要及时响应等,对于数据存储服务的性能要求也越来越高

分布式存储架构有助于提升数据的存储容量

容灾性

高可用性和灵活扩展性等,诸如
MySQL、Oracle、Redis、MongoDB
等数据库基于分布式存储技术,大多采用主从模式架构

分片集群架构

副本集架构等实现数据存储

[0003]在实现本公开构思的过程中,专利技术人发现相关技术中至少存在如下技术问题:相关技术中,用户存在需要对数据回退到历史某个时刻的需求,这就要求数据库能够支持数据回退至任意时间点;在操作日志
(
例如在
MongoDB
数据库中采用
oplog
进行表示
)
对应的有限存储空间中通常会将新数据覆盖一些历史数据,即通过对一些历史数据的存储空间进行回收来存放新数据,然而,随着数据库中数据操作
(
诸如新增

删除

查询或修改等操作
)
比较频繁,这样可能会导致一些历史数据还没来得及被备份就被删除,以进行存储空间释放并存放不断更新的新数据,这样由于存在操作日志的缺失,导致数据库无法支持数据回退至任意时间点


技术实现思路

[0004]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种数据库日志处理的方法

装置

电子设备及介质

[0005]第一方面,本公开的实施例提供一种数据库日志处理的方法

上述方法包括:获取数据库中操作日志的删除锁属性的属性值;上述删除锁属性用于描述上述数据库中操作日志的备份状态;根据上述属性值,确定上述数据库的增量操作日志;将上述增量操作日志进行备份处理;在上述增量操作日志备份成功的情况下,更新上述删除锁属性的属性值;根据上述删除锁属性的属性值,进行操作日志存储空间的回收

[0006]根据本公开的实施例,上述备份状态包括:已备份操作日志的时间信息;上述删除锁属性的属性值包括:已备份操作日志的最新时间戳;或者,上述删除锁属性的属性值包括:已备份操作日志的覆盖时段信息

其中,上述删除锁的属性值是随着增量操作日志的备份而动态更新的,在上述增量操作日志备份之前和备份期间,上述属性值采用更新前的结果;在上述增量操作日志备份成功之后,上述属性值采用更新后的结果

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

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

[0009]根据本公开的实施例,根据上述属性值,确定上述数据库的增量操作日志,包括:在上述数据库中筛选日志时间戳在上述最新时间戳时序之后的第一操作日志;选取上述第一操作日志的部分或全部作为上述增量操作日志

或者,根据上述属性值,确定上述数据库的增量操作日志,包括:在上述数据库中筛选日志时间戳在上述覆盖时段信息之外的第二操作日志;选取上述第二操作日志的部分或全部作为上述增量操作日志

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

[0011]根据本公开的实施例,上述方法还包括:将更新上述删除锁属性的属性值的更新操作记录在上述数据库的操作日志中;其中,上述数据库为采用主从模式架构

副本集架构

分片集群架构

副本集与分片集群的结合架构中的一种所搭建的存储集群中主存储节点对应的数据库,上述操作日志用于在主存储节点和从存储节点之间进行同步;在第一从存储节点切换为主存储节点的状态下,对上述第一从存储节点的数据库进行操作日志备份和操作日志存储空间的回收处理

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

[0013]第二方面,本公开的实施例提供一种数据库日志处理的装置

上述装置包括:属性值获取模块

增量日志确定模块

备份模块

属性值更新模块和存储空间回收模块

上述属性值获取模块用于获取数据库中操作日志的删除锁属性的属性值;上述删除锁属性用于描述上述数据库中操作日志的备份状态

上述增量日志确定模块用于根据上述属性值,确定上述数据库的增量操作日志

上述备份模块本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种数据库日志处理的方法,其特征在于,所述方法包括:获取数据库中操作日志的删除锁属性的属性值;所述删除锁属性用于描述所述数据库中操作日志的备份状态;根据所述属性值,确定所述数据库的增量操作日志;将所述增量操作日志进行备份处理;在所述增量操作日志备份成功的情况下,更新所述删除锁属性的属性值;根据所述删除锁属性的属性值,进行操作日志存储空间的回收
。2.
根据权利要求1所述的方法,其特征在于,所述备份状态包括:已备份操作日志的时间信息;所述删除锁属性的属性值包括:已备份操作日志的最新时间戳;或者,所述删除锁属性的属性值包括:已备份操作日志的覆盖时段信息;其中,所述删除锁的属性值是随着增量操作日志的备份而动态更新的,在所述增量操作日志备份之前和备份期间,所述属性值采用更新前的结果;在所述增量操作日志备份成功之后,所述属性值采用更新后的结果
。3.
根据权利要求2所述的方法,其特征在于,在所述属性值包括已备份操作日志的最新时间戳的情况下,根据所述删除锁属性的属性值,进行操作日志存储空间的回收,包括:针对待回收的目标操作日志存储空间,获取所述目标操作日志存储空间中操作日志的时间戳;确定所述时间戳的时序最新值与所述最新时间戳的时间先后关系;在所述时间先后关系表示所述时序最新值早于所述最新时间戳或等于所述最新时间戳的情况下,将所述目标操作日志存储空间中的操作日志删除;在所述时间先后关系表示所述时序最新值晚于所述最新时间戳的情况下,保留所述目标操作日志存储空间
。4.
根据权利要求2所述的方法,其特征在于,在所述属性值包括已备份操作日志的覆盖时段信息的情况下,根据所述删除锁属性的属性值,进行操作日志存储空间的回收,包括:针对待回收的目标操作日志存储空间,获取所述目标操作日志存储空间中操作日志的时间戳所处时段;确定所述时间戳所处时段与所述覆盖时段信息的覆盖时段之间的区间关系;在所述区间关系表示:所述时间戳所处时段为所述覆盖时段的子集或全集的情况下,将所述目标操作日志存储空间中的操作日志删除;在所述区间关系表示:所述时间戳所处时段与所述覆盖时段之间具有交叉时段的情况下,将所述交叉时段对应的操作日志删除,并保留其余时段内的操作日志;在所述区间关系表示:所述时间戳所处时段与所述覆盖时段之间无交集的情况下,保留所述目标操作日志存储空间
。5.
根据权利要求2所述的方法,其特征在于,根据所述属性值,确定所述数据库的增量操作日志,包括:在所述数据库中筛选日志时间戳在所述最新时间戳时序之后的第一操作日志;选取所述第一操作日志的部分或全部作为所述增量操作日志;或者,在所述数据库中筛选日志时间戳在所述覆盖时段信息之外的第二操作日志;选取所述
第二...

【专利技术属性】
技术研发人员:高忠胜
申请(专利权)人:京东科技信息技术有限公司
类型:发明
国别省市:

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

1