我在另一个主机上有一个带有从复制的MySQL服务器。今天,我偶然发现了从主机的高磁盘使用率,并且发明了占用所有空间的东西。原来这个空间被奴隶的中继日志占据了。
我试图关闭expire_logs_days
变量并重新启动MySQL守护进程,但是所报告的磁盘空间保持不变。我真的找不到FLUSH LOGS
应该清除旧日志的任何令人讨厌的东西。我试过了,但没有结果。
有没有办法减少中继日志占用的磁盘空间?
发布于 2013-06-26 15:47:12
expire_logs_days设置控制二进制日志记录,而不是中继日志记录。
通常,当从服务器完成从中继日志中应用数据时,中继日志将被清除。这可以通过中继日志清除进行更改,但默认为1。
如果您的奴隶简单地落后,它将继续积累中继日志的设计。您可能需要考虑设置中继日志空间限制,以防止磁盘空间出现问题。此设置为用于存储中继日志的IO线程提供了磁盘空间限制。
发布于 2020-07-03 13:41:12
确保您没有在配置中设置relay_log_purge=0
。我在排除复制问题时设置了此选项,并忘记删除它。后来,我们发现由于应用后未清除中继日志,日志磁盘已被填满。
您可以动态地检查和设置此变量的状态,如下所示:
> SELECT @@global.relay_log_purge;
+--------------------------+
| @@global.relay_log_purge |
+--------------------------+
| 0 |
+--------------------------+
> SET @@global.relay_log_purge = 1;
Query OK, 0 rows affected (0.04 sec)
> SELECT @@global.relay_log_purge;
+--------------------------+
| @@global.relay_log_purge |
+--------------------------+
| 1 |
+--------------------------+
https://serverfault.com/questions/518647
复制相似问题