正确删除MySQL BIN-LOG 日志实操作

今天我们主要向大家介绍的是正确删除MySQL BIN-LOG 日志的实际操作步骤,以下的文章将会给你提供相关的知识。

以下的文章主要讲述饿是正确删除MySQL BIN-LOG 日志的实际操作步骤,以及删除MySQL BIN-LOG 日志中我们所应用的实际代码的示例,以下就是具体方案的描述,希望在你今后的学习中会有所帮助。
mysql_logo

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

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

例如:

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

清除3天前的 binlog

PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);

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

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

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

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

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

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

4. 制作您将要删除MySQL BIN-LOG 日志的所有日志的备份。(这个步骤是自选的,但是建议采用。)

5. 清理所有的日志,但是不包括目标日志
实践:
从库下---

mysql> show slave status\G;
……
Master_Log_File: tc-ns-comment-db00-bin.000162
Relay_Master_Log_File: tc-ns-comment-db00-bin.000162
……

主库下---

mysql> show master log;
…………一堆堆
mysql> PURGE MASTER LOGS TO 'tc-ns-comment-db00-bin.000070';
……等待n长时间
mysql>quit
$du -sh ./

减少了好多g啊,世界清净了~~


或者
第一种方法:

mysql> show binary logs;  查看mysql bin-log日志,除了这个以外的,其它都可以使用删除。
mysql> purge binary logs to 'binlog.000058';  (删除mysql bin-log日志,删除binlog.000005之前的,不包括binlog.000058)

第二种方法:
进入数据库,查看一下当前使用的binlog日志是哪个,除了这个以外的,其它都可以使用rm -rf 删除!

还没有评论,快来抢沙发!

发表评论

  • 😉
  • 😐
  • 😡
  • 😈
  • 🙂
  • 😯
  • 🙁
  • 🙄
  • 😛
  • 😳
  • 😮
  • emoji-mrgree
  • 😆
  • 💡
  • 😀
  • 👿
  • 😥
  • 😎
  • ➡
  • 😕
  • ❓
  • ❗
  • 68 queries in 0.381 seconds