一种日志空间管理方法、装置、电子设备及介质

文档序号:7505 发布日期:2021-09-17 浏览:45次 英文

一种日志空间管理方法、装置、电子设备及介质

技术领域

本发明涉及存储

技术领域

,特别是涉及一种日志空间管理方法、装置、电子设备及介质。

背景技术

目前MySQL数据库采用的数据库引擎为InnoDB,相关技术中,可以通过InnoDB实现对日志数据的存储。然而用于存储日志数据的日志空间是固定大小的,当日志空间被完全占用时,则业务系统将在一段时间内无法工作,将导致业务中断。

发明内容

本发明实施例的目的在于提供一种日志空间管理方法、装置、电子设备及介质,以解决由于日志空间大小固定导致的业务中断的问题。具体技术方案如下:

第一方面,本申请实施例提供一种日志空间管理方法,包括:

针对任一日志空间,判断第一日志文件的占用率是否达到预设比例,以得到判断结果,其中,所述第一日志文件为所述日志空间中的当前正在进行日志信息写入的日志文件;以及,获取checkpoint事件确定的目标日志序列号LSN,所述目标LSN为待恢复的日志的最小LSN;

将所述日志空间中的日志文件的日志LSN与所述目标LSN进行大小比较,以从所述日志空间中的所有日志文件中确定出第二日志文件;

基于所述判断结果和所述第二日志文件对所述日志空间的大小进行管理。

在一种可能的实现方式中,所述将所述日志空间中的日志文件的日志LSN与所述目标LSN进行大小比较,以从所述日志空间中的所有日志文件中确定出第二日志文件,包括:

当通过比较以确定所述日志空间中的任一日志文件中的所有日志LSN小于所述目标LSN时,将所述日志文件确定为第二日志文件。

在一种可能的实现方式中,所述基于所述判断结果和所述第二日志文件对所述日志空间的大小进行管理,包括:

当所述判断结果为所述第一日志文件的占有率达到预设比例时,在所述日志空间中增加新的日志文件;

以及,从所述日志空间中删除所述第二日志文件。

在一种可能的实现方式中,所述当所述判断结果为所述第一日志文件的占有率达到预设比例时,在所述日志空间中增加新的日志文件,包括:

在所述日志空间中创建新的日志文件,并对所述新的日志文件进行编号,所述新的日志文件的编号为所述日志空间中的日志文件的最大编号加一。

在一种可能的实现方式中,所述日志空间中的日志文件的编号采用十六位的十六进制数。

第二方面,本申请实施例提供一种日志空间管理装置,包括:

判断模块,用于针对任一日志空间,判断第一日志文件的占用率是否达到预设比例,以得到判断结果,其中,所述第一日志文件为所述日志空间中的当前正在进行日志信息写入的日志文件;以及,获取checkpoint事件确定的目标日志序列号LSN,所述目标LSN为待恢复的日志的最小LSN;

比较模块,用于将所述日志空间中的日志文件的日志LSN与所述目标LSN进行大小比较,以从所述日志空间中的所有日志文件中确定出第二日志文件;

管理模块,用于基于所述判断结果和所述第二日志文件对所述日志空间的大小进行管理。

在一种可能的实现方式中,所述比较模块,具体用于:

当通过比较以确定所述日志空间中的任一日志文件中的所有日志LSN小于所述目标LSN时,将所述日志文件确定为第二日志文件。

在一种可能的实现方式中,所述管理模块,具体用于:

当所述判断结果为所述第一日志文件的占有率达到预设比例时,在所述日志空间中增加新的日志文件;

以及,从所述日志空间中删除所述第二日志文件。

在一种可能的实现方式中,所述管理模块,具体用于:

在所述日志空间中创建新的日志文件,并对所述新的日志文件进行编号,所述新的日志文件的编号为所述日志空间中的日志文件的最大编号加一。

在一种可能的实现方式中,所述日志空间中的日志文件的编号采用十六位的十六进制数。

第三方面,本申请实施例提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的方法步骤。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法步骤。

第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法步骤。

采用上述技术方案,针对任一日志空间,判断第一日志文件的占用率是否达到预设比例,且可获取checkpoint事件确定的目标LSN,进而将日志空间中的日志文件的日志LSN与目标LSN进行大小比较,以从日志空间中的所有日志文件中确定出第二日志文件,再基于判断结果和第二日志文件对日志空间的大小进行管理。上述第一日志文件为日志空间中当前正在写入的日志文件,即本申请实施例可以及时判断当前正在写入的日志文件是否达到预设比例,从而避免日志空间中的所有日志文件均被写满。另外,上述目标LSN为待恢复的日志的最小LSN,换言之,日志LSN小于该目标LSN的日志均为无需恢复的日志,所以本申请实施例通过将日志文件的日志LSN与目标LSN进行日志比较,可以确定出哪些日志文件不包括待恢复的日志,避免待恢复的日志被删除。综上,基于判断结果和第二日志文件对日志空间进行大小管理可以避免日志空间被完全占用,避免了业务系统的业务中断的问题。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种日志空间管理方法的流程图;

图2为本申请实施例提供的一种日志文件分配方式的示例性示意图;

图3为本申请实施例提供的一种日志空间管理装置的结构示意图;

图4为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本申请实施例提供一种日志空间管理方法,该方法应用于电子设备,该方法包括:

S101、针对任一日志空间,判断第一日志文件的占用率是否达到预设比例,以得到判断结果;以及,获取checkpoint事件确定的目标(Log sequence number,LSN)。

其中,第一日志文件为日志空间中的当前正在进行日志信息写入的日志文件,目标LSN为待恢复的日志的最小LSN。

作为示例,预设比例可以为50%。

S102、将所述日志空间中的日志文件的日志LSN与所述目标LSN进行大小比较,以从日志空间中的所有日志文件中确定出第二日志文件。

S103、基于判断结果和第二日志文件对日志空间的大小进行管理。

采用本申请实施例提供的日志空间管理方法,针对任一日志空间,判断第一日志文件的占用率是否达到预设比例,且可获取checkpoint事件确定的目标LSN,进而将日志空间中的日志文件的日志LSN与目标LSN进行大小比较,以从日志空间中的所有日志文件中确定出第二日志文件,再基于判断结果和第二日志文件对日志空间的大小进行管理。上述第一日志文件为日志空间中当前正在写入的日志文件,即本申请实施例可以及时判断当前正在写入的日志文件是否达到预设比例,从而避免日志空间中的所有日志文件均被写满。另外,上述目标LSN为待恢复的日志的最小LSN,换言之,日志LSN小于该目标LSN的日志均为无需恢复的日志,所以本申请实施例通过将日志文件的日志LSN与目标LSN进行日志比较,可以确定出哪些日志文件不包括待恢复的日志,避免待恢复的日志被删除。综上,基于判断结果和第二日志文件对日志空间进行大小管理可以避免日志空间被完全占用,避免了业务系统的业务中断的问题。

针对上述S101,checkpoint事件被触发后,会触发数据库的写进程将内存中的脏数据写入硬盘,保证内存和硬盘中的数据一致。具体地,checkpoint事件被触发后,数据库的写进程可以将内存中checkpoint_LSN对应的日志之后的日志写入硬盘。本申请实施例中,checkpoint事件确定的目标LSN为该checkpoint_LSN。

checkpoint事件中,checkpoint_LSN对应的日志之后的日志为与硬盘中的日志不一致的日志,即checkpoint_LSN对应的日志之前的日志为已写入硬盘中的数据,基于checkpoint事件的这一特征,上述S102、将所述日志空间中的日志文件的日志LSN与所述目标LSN进行大小比较,以从日志空间中的所有日志文件中确定出第二日志文件,具体可以实现为:

当通过比较以确定所述日志空间中的任一日志文件中的所有日志LSN小于目标LSN时,将该日志文件确定为第二日志文件。

可以理解的是,若日志文件的所有日志LSN均小于目标LSN,则说明该日志文件中包括的日志均已被写入硬盘,所以第二日志文件为可以被从日志空间中删除的日志文件。

上述S103、基于判断结果和第二日志文件对日志空间的大小进行管理,具体可以实现为:

当所述判断结果为第一日志文件的占有率达到预设比例时,在所述日志空间中增加新的日志文件;以及,从所述日志空间中删除第二日志文件。

在所述日志空间中增加新的日志文件,具体可以实现为:在日志空间中创建新的日志文件,并对新的日志文件进行编号。

其中,新的日志文件的编号为日志空间中的日志文件的最大编号加一。

可选地,日志空间中的日志文件的编号采用十六位的十六进制数。

在本申请实施例的一种实现方式中,日志空间中的各日志文件的编号按照创建时间从早到晚的顺序依次累加,且按照日志信息的生成时间从早到晚的顺序在日志文件中写入日志信息。

日志文件一般从0开始编号,如图2所示,日志空间中的第一个日志文件的编号为#0000000000000000,第二个日志文件的编号为#0000000000000001,第三个日志文件的编号为#0000000000000002。在写入日志信息时,先向日志空间中的第一个日志文件写入日志信息,当第一个日志文件被写满时,继续向第二个日志文件写入日志信息。

举例而言,假设当前日志空间中的最后一个日志文件的编号为#0000000000000002,则在日志空间中创建新的日志文件后,该新的日志文件中的编号为#0000000000000003。

另外,若图2中编号为#0000000000000000的日志文件的所有日志LSN均小于目标LSN,则将该日志文件删除。

所以,在执行上述S103之后,图2中的第一个日志文件为已删除的日志文件,第二个、第三个和第四个日志文件为当前存在的日志文件,未来还可以生成其他的日志文件。

在本申请实施例的一种实施方式中,电子设备可以根据目标LSN以及日志文件的大小确定第二日志文件。

其中,日志空间中的每个日志文件的大小相同,LSN可以认为是日志空间中每条日志的结束点,用字节偏移量表示。比如,日志空间中的第一条日志的大小为10Kb,则该日志的LSN为10。

本申请实施例中,根据目标LSN除以日志文件大小所得的商,可以确定目标LSN在日志空间中所属的日志文件。比如,日志文件大小为1024kb,目标LSN为1025,1025除以1024所得商为1,则可目标LSN在编号为#0000000000000001的日志文件中。由于目标LSN为待恢复的最小LSN,且日志文件中的日志信息按照产生时间从早到晚的顺序存储,所以在#0000000000000001对应的日志文件之前的日志文件中的日志LSN均小于目标LSN,即日志空间中,在#0000000000000001对应的日志文件之前的日志文件均为第二日志文件,也就是图2中的编号为#0000000000000000的日志文件为第二日志文件。

采用本申请实施例,若日志文件的编号采用16位的16位进制数,则日志文件的编号最大可以为2的64次方,由于本申请实施例可以根据checkpoint事件确定的目标LSN确定第二日志文件,并删除第二日志文件,从而释放出存储资源,且当第一日志文件的占用率达到预设比例时,可以利用日志空间中剩余的存储资源创建新的日志文件。即本申请实施例可以实现动态删除旧的日志文件,并创建新的日志文件,采用上述编号方式创建新的日志文件,即可认为能够创建2的64次方个日志文件,可以认为日志空间无限大,避免了因日志空间不足导致的业务中断的问题。

基于相同的技术构思,本申请实施例还提供一种日志空间管理装置,如图3所示,该装置包括:

判断模块301,用于针对任一日志空间,判断第一日志文件的占用率是否达到预设比例,以得到判断结果,其中,所述第一日志文件为所述日志空间中的当前正在进行日志信息写入的日志文件;以及,获取checkpoint事件确定的目标日志序列号LSN,所述目标LSN为待恢复的日志的最小LSN;

比较模块302,用于将所述日志空间中的日志文件的日志LSN与所述目标LSN进行大小比较,以从所述日志空间中的所有日志文件中确定出第二日志文件;

管理模块303,用于基于所述判断结果和所述第二日志文件对所述日志空间的大小进行管理。

可选地,比较模块302,具体用于:

当通过比较以确定所述日志空间中的任一日志文件中的所有日志LSN小于所述目标LSN时,将所述日志文件确定为第二日志文件。

可选地,管理模块303,具体用于:

当所述判断结果为所述第一日志文件的占有率达到预设比例时,在所述日志空间中增加新的日志文件;

以及,从所述日志空间中删除所述第二日志文件。

可选地,管理模块303,具体用于:

在所述日志空间中创建新的日志文件,并对所述新的日志文件进行编号,所述新的日志文件的编号为所述日志空间中的日志文件的最大编号加一。

其中,所述日志空间中的日志文件的编号采用十六位的十六进制数。

本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,

存储器403,用于存放计算机程序;

处理器401,用于执行存储器403上所存放的程序时,实现上述方法实施例中的方法步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一日志空间管理方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一日志空间管理方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种数据处理方法、用户空间文件系统以及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!