公司的数据库由于读写操作很多,所以bin-log日志的增长速度很快,于是乎就要定时删除binlog,但是在网上看了很多文章都是几天或指定时间删一次,可有时需要几天有时需要几个小时就要删一次,也有可能几分钟就删一次,下面详细介绍一下,以便于有需要的人一眼就可以知道怎么去管理。
&&我们在做主从的时候最好加上一些详细的参数来指定binlog的大小,删除规则,这样有利于管理。
我使用的方法是通过sql语句去删除binlog
这条语句是删除3天前的binlog日志,是按照当前时间算的
InBlock.gifmysql> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
这条语句是删除3个小时前的binlog日志
InBlock.gifPURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 HOUR);
我们在删除binlog时一般都是删除master的binlog(但是不要删的太狠,以便出现突发情况无法即时恢复,要确保slave同步的bin-log完整之后,我们再执行删除操作),slave用于备份
这条语句是删除2012年7月23日8点前的binlog----指定时间
InBlock.gif mysql> PURGE MASTER LOGS BEFORE '2012-07-23 08:00:00';
我们在删除的时候因为情况不同所以需要的时间间隔也会不同下面来说说date_sub的用法和参数
语法
InBlock.gifDATE_SUB(date,INTERVAL expr type)
这里通常需要指定的变量是type,所有下面列出type的参数