删除复制relay-bin文件是否安全?

20

我有一个小型数据库,大约50MB。它是一个主数据库,正在复制到远程服务器。我发现relay-bin文件的总大小超过了5GB。是否可以安全地删除它们?

4个回答

37

我认为一个更好的答案是中继日志可以被“删除”,但 MySQL 应该自动管理它们。要实现这一点,一种方法是检查 relay_log_purge 的值。

如果你希望 MySQL 管理中继日志,那么应将其设置为 1:

set global relay_log_purge=1;

你可能需要清空日志:

flush logs;

这不会影响二进制日志。


2
在我看来,这应该是被接受的答案。我们刚刚发现一个服务器,几个月前显然已经手动关闭了relay_log_purge,并且一直在用relay日志填充其磁盘。运行这些命令完美地解决了问题。 - Keiji

6

也许尝试重新同步您的主从。

如果可能的话,通过运行reset slave来清理从站。

它将清除所有中继二进制日志。

然后使用change master to重新设置复制...

您的主从之间可能存在太多延迟。


其他建议无效时,这个方案可行。 - alimack

0

来自MySQL手册

SQL线程在执行完文件中的所有事件并且不再需要它后,会自动删除每个中继日志文件。没有明确的机制来删除中继日志,因为SQL线程会负责这样做。但是,FLUSH LOGS会旋转中继日志,这会影响SQL线程何时删除它们。


-5
不要手动删除中继日志文件。您可以使用MySQL命令清除二进制文件。有关PURGE BINARY LOGS命令的更多信息,请参见MySQL 5.0手册

谢谢,这就是我需要的吗?清除缓存会确保不影响复制吗? - HyderA
是的,在任何时候都不会影响复制。 - programmer
3
如果已经关闭复制并且不再需要使用,这些文件可以被删除吗? - Mei
26
"PURGE BINARY LOGS" 只涉及二进制日志,不包括中继日志。 - frostyplanet
1
这个做法与所要求的不同,可能会损害您的Mariadb设置。正确的答案是Rodo的。 - Matyas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接