MYSQL日志的正确删除方法详解

时间:2020-04-09 02:28来源:计算机教程
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); 制作您将要删除的所有日志的备份。 清理所有的日志,但是不包括目标日志。 本文详细讲述了MYSQL日志的正确删除方法。分享给大家供大家
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
  1. 制作您将要删除的所有日志的备份。

  2. 清理所有的日志,但是不包括目标日志。

本文详细讲述了MYSQL日志的正确删除方法。分享给大家供大家参考,具体如下:

清除3天前的 binlog

PURGE {MASTER | BINARY} LOGS TO 'log_name'PURGE {MASTER | BINARY} LOGS BEFORE 'date'

如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。

2.删除bin-log(删除mysql-bin.000003之前的而没有包含mysql-bin.000003)

MySQL show binary logs; —————- ———– | Log_name | File_size | —————- ———– | mysql-bin.000001 | 150462942 || mysql-bin.000002 | 125 || mysql-bin.000003 | 106 | —————- ———– 

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》

PURGE MASTER LOGS TO 'mysql-bin.010′;PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00′;

1.查找:

用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。

要清理日志,需按照以下步骤:

希望本文所述对大家MySQL数据库计有所帮助。

BEFORE变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同义词。

(删除的其它格式运用!)

mysql purge binary logs to 'mysql-bin.000003';Query OK, 0 rows affected (0.16 sec)

例如:

3. 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志。

  1. 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。

  2. 使用SHOW MASTER LOGS获得主服务器上的一系列日志。

在contab设置:复制代码 代码如下:0 1 * * * `mysql -uroot -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);'`

  1. 查询结果(现在只有一条记录了.)

    mysql show binlog events/G*** 1. row ***Log_name: mysql-bin.000003Pos: 4Event_type: Format_descServer_id: 1End_log_pos: 106Info: Server ver: 5.1.26-rc-log, Binlog ver: 41 row in set (0.01 sec)(mysql-bin.000001和mysql-bin.000002已被删除)mysql show binary logs; —————- ———– | Log_name | File_size | —————- ———– | mysql-bin.000003 | 106 | —————- ———– 1 row in set (0.00 sec)

编辑:计算机教程 本文来源:MYSQL日志的正确删除方法详解

关键词: