一种自适应的wal日志膨胀解决方法技术

技术编号:37374408 阅读:12 留言:0更新日期:2023-04-27 07:18
本发明专利技术公开了一种自适应的wal日志膨胀解决方法,涉及云计算与大数据技术领域。该自适应的wal日志膨胀解决方法,包括以下步骤:S1,定时探测wal文件大小和wal文件所在磁盘剩余空间,判断磁盘剩余空间是否低于阈值,若是,则进入自适应调节;S2,进入自适应调节,根据自适应调节算法提交延迟事务调节wal日志生成速度;S3,循环S1和S2。本发明专利技术通过定时探测wal文件大小和wal文件所在磁盘剩余空间,判断磁盘剩余空间低于阈值时,采取自适应算法控制wal文件的生成速度的技术,达到了对wal文件的膨胀速度有明显的控制效果,解决了现有技术中wal日志膨胀导致的数据库磁盘爆盘不可用的问题。题。题。

【技术实现步骤摘要】
一种自适应的wal日志膨胀解决方法


[0001]本专利技术涉及云计算与大数据
,尤其涉及一种自适应的wal日志膨胀解决方法。

技术介绍

[0002]wal日志也叫预写日志,是数据库系统中(特别是关系型)用于实现事务持久性的技术。比如在MySQL中wal日志为redo日志;在postgresql 10版本之前叫xlog日志,之后就叫wal日志。在数据库的实际应用中,一些数据库应用需要保留wal日志来实现特定功能。比如任意时间点恢复功能需要将wal进行归档或者备份进行保存,数据库主备集群也支持异步复制模式。某些情况下,因为wal日志丢失会破坏数据一致性,所以如果wal日志被清理,任意时间点恢复将会因为日志丢失无法恢复到指定时间,备库也会因为wal日志丢失而无法和主库数据保存同步。
[0003]在实际应用中,数据库应用通常把wal日志保存到和数据库实例保持异步的机器上,异步的机器会因为CPU,内存,网络和磁盘IO等多项硬件性能的差异而无法与数据库保持同步,所以在数据库实例中预留保存未被同步的wal日志文件。
[0004]但本申请专利技术人在实现本申请实施例中专利技术技术方案的过程中,发现上述技术至少存在如下技术问题:
[0005]为了保证应用的可用性,数据库主库实例必须为应用保留wal日志,这些和数据库异步的应用在某些场景下会影响数据库正常,比如在事务压力特别大的情况下,主库和备库的网络或者磁盘IO存在差异(比如主库SSD硬盘,备库机械SATA硬盘),主库wal日志的生成速度大于备库wal日志同步速度,wal日志文件快速膨胀,时间一长就会导致磁盘爆满,进而影响数据库正常使用。综上所述,现有技术存在wal日志膨胀导致的数据库磁盘爆盘不可用的问题。

技术实现思路

[0006]本申请实施例通过提供一种自适应的wal日志膨胀解决方法,解决了现有技术中wal日志膨胀导致的数据库磁盘爆盘不可用的技术问题,实现了维持数据库应用的高可用,保证了数据库的稳定运行。
[0007]本申请实施例提供了一种自适应的wal日志膨胀解决方法,包括以下步骤:
[0008]S1,定时探测wal文件大小和wal文件所在磁盘剩余空间,判断磁盘剩余空间是否低于阈值,若是,则进入自适应调节;
[0009]S2,进入自适应调节,根据自适应调节算法提交延迟事务调节wal日志生成速度;
[0010]S3,循环S1和S2。
[0011]进一步的,所述S1中判断磁盘剩余空间是否低于阈值,若否,则继续探测wal文件大小和wal文件所在磁盘剩余空间。
[0012]进一步的,所述S1中探测wal文件大小和wal文件所在磁盘剩余空间之前需要获取
指标,并将延迟提交参数和数据库禁止写入参数进行初始化。
[0013]进一步的,所述指标包括:wal文件数、最大wal阈值、磁盘剩余空间和磁盘剩余空间阈值。
[0014]进一步的,所述S2中的自适应调节算法具体包括:
[0015]慢开始:当wal文件量增加或者剩余磁盘空间减小时,增加延迟提交时间;
[0016]快恢复:当wal文件量减小或者磁盘剩余空间增大时,降低延迟提交时间;
[0017]避免爆盘:当剩余磁盘空间小于1G时,禁止数据库写入,只有当剩余空间大于2G时才开启数据库写。
[0018]进一步的,所述增加延迟提交时间指将延迟时间增加一个固定值,固定值的数据类型为数值型。
[0019]进一步的,所述降低延迟提交时间指将延迟时间减少为原来的一半。
[0020]进一步的,所述S2中调节wal日志生成速度后,需要保存本次wal文件大小和wal文件所在磁盘剩余空间作为旧数据,用于下一次参数变化的比较。
[0021]进一步的,所述自适应的wal日志膨胀解决方法可作为独立进程,在任意关系型数据库中进行部署执行。
[0022]进一步的,所述自适应的wal日志膨胀解决方法可作为数据库插件嵌入到数据库内部进程进行执行。
[0023]本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0024]1、由于采用了定时探测wal文件大小和wal文件所在磁盘剩余空间,判断磁盘剩余空间低于阈值时,采取自适应算法控制wal文件的生成速度的技术,所以对wal文件的膨胀速度有明显的控制效果,有效解决了现有wal日志膨胀导致的数据库磁盘爆盘不可用的问题,进而实现了维持数据库应用的高可用,保证了数据库的稳定运行。
[0025]2、由于在探测wal文件大小和wal文件所在磁盘剩余空间之前需要获取指标,并将延迟提交参数和数据库禁止写入参数进行初始化,所以其中的参数可以动态的修改,有效解决了现有技术中难以解决wal日志在多元场景下膨胀的问题,进而实现了仅修改参数,即可实时应对场景变化,使自适应的wal日志膨胀解决方法可以用于不同的业务场景。
[0026]3、由于在调节wal日志生成速度后,需要保存本次wal文件大小和wal文件所在磁盘剩余空间作为旧数据,用于下一次参数变化的比较,所以记录了数据库异步应用同步速度差异,有效解决了现有技术中运维人员对异步应用瓶颈难以优化的问题,进而实现了便于运维人员针对瓶颈进行优化,提升整体的数据库性能。
附图说明
[0027]图1为本申请实施例一提供的自适应的wal日志膨胀解决方法流程图;
[0028]图2为本申请实施例一提供的一主一备集群部署架构图;
[0029]图3为本申请实施例一提供的postgresql指标获取方法图;
[0030]图4为本申请实施例一提供的自适应调节算法的代码图。
具体实施方式
[0031]本申请实施例通过提供一种自适应的wal日志膨胀解决方法,解决了现有技术中
wal日志膨胀导致的数据库磁盘爆盘不可用的问题,在数据库中运用自适应算法实现了控制wal日志生成速度。
[0032]本申请实施例中的技术方案为解决上述wal日志膨胀导致的数据库磁盘爆盘不可用的问题,总体思路如下:
[0033]通过定时探测wal文件大小和wal文件所在磁盘剩余空间,获取相关的参数,再判断磁盘剩余空间是否低于阈值,若低于阈值,则进入自适应调节;进入调节后,根据自适应调节算法提交延迟事务,以调节wal日志的生成速度,循环以上步骤。
[0034]上述的调节wal日志的生成速度之后需要保存本次wal文件大小和wal文件所在磁盘剩余空间作为旧数据,用于下一次参数变化的比较。
[0035]为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0036]实施例一
[0037]如图1所示,为本申请实施例提供的自适应的wal日志膨胀解决方法流程图,该方法包括以下步骤:
[0038]S1,定时探测wal文件大小和wal文件所在磁盘剩余空间,判断磁盘剩余空间是否低于阈值,若是,则进入自适应调节;
[0039]S2,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自适应的wal日志膨胀解决方法,其特征在于,包括以下步骤:S1,定时探测wal文件大小和wal文件所在磁盘剩余空间,判断磁盘剩余空间是否低于阈值,若是,则进入自适应调节;S2,进入自适应调节,根据自适应调节算法提交延迟事务调节wal日志生成速度;S3,循环S1和S2。2.如权利要求1所述自适应的wal日志膨胀解决方法,其特征在于:所述S1中判断磁盘剩余空间是否低于阈值,若否,则继续探测wal文件大小和wal文件所在磁盘剩余空间。3.如权利要求1所述自适应的wal日志膨胀解决方法,其特征在于:所述S1中探测wal文件大小和wal文件所在磁盘剩余空间之前需要获取指标,并将延迟提交参数和数据库禁止写入参数进行初始化。4.如权利要求3所述自适应的wal日志膨胀解决方法,其特征在于:所述指标包括:wal文件数、最大wal阈值、磁盘剩余空间和磁盘剩余空间阈值。5.如权利要求1所述自适应的wal日志膨胀解决方法,其特征在于:所述S2中的自适应调节算法具体包括:慢开始:当wal文件量增加或者剩余磁盘空间减小时,增加延...

【专利技术属性】
技术研发人员:蒋伟魏兴国唐钰杰杨焕填苏飞周国剑
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1