MySql如何删除 bin log
【MySql】如何删除 bin log
一 删法如下,
PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
用于删除在指定的日志或日期之前的日志索引中的所有二删制日志。删些日志也删删在日志索引会从文件中的删中被删除~删删被删定的日志成删第一。清个
例如,
1 删除指定日志之前的bin log
PURGE MASTER LOGS TO 'mysql-bin.010';1) 删看前的当log
mysql> show binary logs;
+------------------+-----------+| Log_name | File_size |+------------------+-----------+| mysql-bin.000001 | 126 || mysql-bin.000002 | 88416282 || mysql-bin.000003 | 198081520 || mysql-bin.000004 | 1358 || mysql-bin.000005 | 126 || mysql-bin.000006 | 126 || mysql-bin.000007 | 126 || mysql-bin.000008 | 315 || mysql-bin.000009 | 126 || mysql-bin.000010 | 126 || mysql-bin.000011 | 504 || mysql-bin.000012 | 107 || mysql-bin.000013 | 107 || mysql-bin.000014 | 107 || mysql-bin.000015 | 107 || mysql-bin.000016 | 521 || mysql-bin.000017 | 315 || mysql-bin.000018 | 958 |+------------------+-----------+
18 rows in set (0.04 sec)
2) 删除mysql-bin.000010 之前的日志
mysql> purge binary logs to 'mysql-bin.000010';
Query OK, 0 rows affected (0.35 sec)
mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000010 | 126 |
| mysql-bin.000011 | 504 |
| mysql-bin.000012 | 107 |
| mysql-bin.000013 | 107 |
| mysql-bin.000014 | 107 |
| mysql-bin.000015 | 107 |
| mysql-bin.000016 | 521 |
| mysql-bin.000017 | 315 |
| mysql-bin.000018 | 958 |
+------------------+-----------+
9 rows in set (0.00 sec)
3)删示第一二删制日志,个
mysql>show binlog events;
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info
|
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| mysql-bin.000010 | 4 | Format_desc | 1 | 107 | Server ver:
5.5.18-log, Binlog ver: 4 |
| mysql-bin.000010 | 107 | Stop | 1 | 126 |
|
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
2 rows in set (0.01 sec)
2 删除指定日期之前的bin log
PURGE MASTER LOGS BEFORE '2011-12-05 13:00:00';3 除清N天前的 binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL N DAY);BEFORE删量的date自删量可以删'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同删删。下面的删句可以除 清7 天前的binlog,
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);在contab删置定期每天凌晨3点删除7天前的binlog:
0 3 * * * `mysql -uroot -e 'PURGE BINARY LOGS BEFORE DATE_SUB( NOW( ),
INTERVAL 7 DAY);'`
二 主架的日志删除从构
删于主删删的从构mysql系删~slave服删器前正在删取删删删除的日志之一当,删删除删句失删~且删删。不删并~如果在slave服删器是停止行期删理了其未删取的日志之一运清,删slave服删器删后不能删制。启当
slave服删器正在删制删~删除日志的删句可以安全行~不需要停止删。运并它
主架的可以按照以下步删理日志,从构清
1. 在每个SLAVE服删器上~使用SHOW SLAVE STATUS删删删正在删取的日志。来它
2. 使用SHOW MASTER LOGS删得主服删器上的已删删的日志。档
3. 在所有的slave服删器中判定最早的日志,截至目删日志。如果所有的既slave服删器是更新的~删是删上的最后一日志。清个
4. 删要删除的所有日志~防止意外,份将
5. 删除日志~但不包括目删日志。
三 相删,
配置文件my.cnf的参数expire-logs-days 指定了日志删期的天~比如数
expire-logs-days = 20
示日志保留20,超删20删删置删删期的,可以根据删删情删置合适的删。况来
来源,