怎样清除历史的binlog

【 TiDB 使用环境】
v5.0.3

【概述】 场景 + 问题概述

使用了pumpdrainer去收集binlog, 生成的binlog占用了大量的磁盘空间,请问应该怎样清除历史的binlog?
在drainer的配置中看到了`retention-time = 7`,但没看到相关的说明,不确定是不是binlog保留的时间.
另外如何手动去清binlog,tidb是否提供了类似mysql的PURGE MASTER LOGS TO 'bin-xxxxx'手动清除历史binlog的功能,直接通过rm删除binlog文件是否有其他隐患?

自动删除方式:

  • Pump 会有一个默认的 gc 时间,默认是 7 天,超过这个时间后这些 binlog 就可被删除,可配置 GC 时间短一些。

人工手动删除方式:

  • 正常情况下,不需要人工 gc ,如果需要手工删除,可从监控中看到目前已经被消费的 binlog 的ts,可以删除这个 ts 之前的 binlog。

其它方式不做推荐。

3赞

手工删除的话直接删除对应的binlog文件就可以了吗? 还是需要通过特定命令去删?

可以直接删除的。

您好,我这边看drainer的data目录下,10几天前的binlog依然存在,没有被gc,目前binlog占用的空间已经96G了.请问下可能是什么原因


pump的gc时间配置的2天.
image
pump和drainer都只配置了单台
下面日志是pump和drainer的WARN和ERROR级别的信息
drainer-warn.log (48.7 KB) pump-warn.log (41.3 KB)

你的 drainer 配置的下游是什么?如果是文件,那么不会删除的。

对,下游配的是文件.
了解了,谢谢