删除 MySQL 生成的 BIN 文件是否安全?

删除 MySQL 生成的 BIN 文件是否安全?

它们占用了太多空间:

/var/lib/mysql/jiaoyou-slow.log: 53M
/var/lib/mysql/mysql-bin.000005: 68M
/var/lib/mysql/mysql-bin.000003: 1.1G
/var/lib/mysql/mysql-bin.000007: 34M
/var/lib/mysql/mysql-bin.000004: 225M

答案1

不,您不应该手动删除它们。

如果在磁盘级别删除它们,mysql将会崩溃。

删除它们的命令是:

PURGE BINARY LOGS TO 'mysql-bin.010';

替换为您希望保留的mysql-bin.010最后一个文件 - 通常是最后一个。mysql-bin

MySQL 文档了解更多信息。

答案2

使用二进制日志有几个原因。按重要性排序:

  1. 复制——从服务器从主服务器的二进制日志中获取内容。
  2. 更大的备份粒度——在以前的备份点重播日志。
  3. 查询日志记录 - 对于偶尔出现的“运行了什么写入查询?”的情况,比一般查询日志更有效。

因此,在删除任何二进制日志之前需要检查三件事:

  1. 您有任何复制从属设备吗?它们是最新的吗?
    • 如果在从服务器将二进制日志拉入中继日志之前删除该日志,则从服务器将无法继续复制。此外,还可能存在需要从主服务器删除中继日志并再次假脱机的异常情况。
  2. 您的备份是否已检查?
  3. 您是否需要检查在该日志记录期间执行的所有查询?

如果您对所有这些问题的答案都满意,那么请继续使用以下命令删除它们PURGE愤怒Z。 绝对地手动删除它们,因为 MySQL 喜欢跟踪它们。您可以使用语法TO指定文件名或BEFORE指定日期。您可以查看 MySQL 当前打开了哪个文件SHOW MASTER STATUS

一个更好的方法,基达注意,使用expire_logs_days。这将自动执行清除任何超过 N 天的二进制日志的操作。

答案3

答案4

在 Ubuntu 12.04 中

清除二进制日志

将此行添加到您的 /etc/mysql/my.cnf 并且它需要位于 [mysqld] 部分。

过期日志天数 = 7

后:

/etc/init.d/mysql 重启

或者:

然后登录Mysql并运行此命令来设置变量,而无需重新启动Mysql。

设置全局expire_logs_days=7;

相关内容