备份包体积三个月从 200MB 涨到 4GB,备份时间从八分钟变成一小时,磁盘占用告警每天响一次。日志里能对上时间点,这种反而好排。

插件把每次请求都写进自定义日志表,两年攒了 1800 万行,这张表跟着数据库一起备份。数据本身没人查,体积全进了备份包。这一点先确认清楚,后面就不用反复试。

SELECT table_name, data_length/1024/1024 AS mb
FROM information_schema.tables
ORDER BY data_length DESC LIMIT 5;

「备份体积突增」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

报错里带路径的,先去看那个路径在不在、权限对不对。同一份配置存在多处的,先确认改的是被加载的那一份。

新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

处理上按这个顺序:先按表统计行数和占用 找出最大的那张;给日志表加保留策略 只留最近三十天;清理后重建表释放空间 光 DELETE 不回收磁盘。

结果对不对很好判断,备份包回到 300MB 以内,备份耗时降到十分钟左右。

作者 9823189