我目前面临 MySQL 5.7.32 服务器的磁盘空间问题,该服务器有 >500 个二进制日志,每个日志大小为 1.1GB。
我花了几天的时间阅读这篇文章,发现这PURGE BINARY LOGS
是正确的命令,但却无法找到有关潜在性能影响或 MySQL 服务器是否在此过程中锁定的任何信息。
我检查了服务器变量并发现:
binlog_gtid_simple_recovery
和gtid_mode
都设置为 ON,据我所知,这将对性能产生积极的影响。
有人可以解释一下小批量清除日志时对性能的影响或预期的锁吗?
这取决于
释放 500 * 1.1GB 的磁盘空间取决于操作系统;这虽然“快”,但不是“即时”的。
如果您对此感到担心,请查看文件上的日期,然后设置
expire_logs_days
删除一些文件。计时。推断。然后,决定要采取多少步骤才能完成清除。我没有丰富的经验;完成全部 500 个可能需要几分钟。
如果其他人来寻找这个,我想分享我们的经验。
我们的数据库每天生成大约 6-7GB 的二进制日志,由 SSD 运行。
我一次用 处理了 10 个二进制日志
PURGE BINARY LOGS TO '<filename>'
。正如 Rick James 所说,这个过程很快但不是即时的 - 它没有给我们的数据库服务器或锁带来任何额外的负载,我们的应用程序顺利地运行,没有任何明显的性能影响。