WAL文件回收

    checkpoint执行大致分为四步:1)刷写脏页,即将整个share buffer的所有脏页都刷盘;2)生成checkpoint wal记录,并插入WAL BUFFER;3)将checkpoint前的所有wal全部刷盘;4)回收WAL文件。这里主要介绍回收文件时需要注意的一点。尤其是磁盘空间比较紧张的场景下。

      本文介绍WAL文件回收时,需要注意的一个点。回收由函数RemoveOldXlogFiles函数完成。这个函数进行回收的时候,跳过时间线进行比较。如果_logSegNo日志号,即当前日志号减去变量控制需要保留的文件数后,得到的日志文件号。比这个日志文件号小的文件都会被删除,即RemoveXlogFile函数的工作。

       首先需要判断是否done文件,done文件下才会进入删除。删除前先保存下来删除的文件到共享内存即XLogCtl->lastRemovedSegNo = segno。

       如果一直进行promote的话,即使有很多WAL文件,也可能因为日志号在保留的范围内,从而导致不能被删除。这种情况对于不太稳定的环境尤其需要注意。即使及时执行checkpoint,也可能会因为这些WAL文件而撑爆磁盘空间。

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值