前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WAL文件回收

WAL文件回收

原创
作者头像
yzsDBA
修改2020-04-26 10:22:04
5900
修改2020-04-26 10:22:04
举报

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文件而撑爆磁盘空间。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com