我有一个nextcloud服务器,它使用Mariadb作为数据库,但是由于Mariadb垃圾日志文件(即:mariadb-bin.0000** in /var/log/mysql )而遇到问题。
这似乎是由于服务器上发生了多少文件/事务,而不是由于任何错误,所以没有任何需要修复的地方。我只需要知道如何限制保存在文件夹中的日志文件的数量,这样它就不会一直占用VPS可用的有限空间。
是否有办法限制这些文件的数量,以便自动删除或限制它们,从而使mariadb-bin.index不受影响?
发布于 2023-04-19 08:19:06
在没有脚本的帮助下,我没有找到限制文件数量的方法(Percona有一个max_binlog_files,但是它再也没有回到MySQL/MariaDB中)。
解决办法是使用这两种方法中的一种:
系统设置过期_日志_天数或联木_过期_日志_秒 (最后一个需要MariaDB 10.6.1)
可以自动删除二进制日志的天数。0不是自动移除,是默认的。-秒=N,其中N是秒的数量。
还可以使用命令根据日期清除日志:
PURGE BINARY LOGS BEFORE '2023-04-01';这些都不会将它直接限制在文件的数量上,但是如果您知道在N秒钟内创建了多少文件,它就会关闭。
下面是一个对数旋转示例(基于设置为/var/log/mysql/的日志文件),其中error_log、general_query_log和slow_query_log被分成不同的日志文件。这可能也很有用,这样您就可以保留重要的日志并丢弃正常的通知。日志旋转的问题:看起来文件被清除之前,最少的天数是7天。
如果你真的想要一个文件的实际数量,你将需要一个脚本。
https://askubuntu.com/questions/1463992
复制相似问题