您的位置:首页 > 数据库 > MySQL

MYSQL大批量删除日志

2015-06-10 16:35 585 查看
今天MYSQL服务器磁盘空间耗尽,经排查发现mysql目录下生成大量的二进制日志文件,占用几十G的磁盘空间,差不多3000多个文件,如下图



进入mysql里面查看相关log的设置
mysql> show variables like '%log%';
+-----------------------------------------+---------------------------------------------+
| Variable_name                           | Value                                       |
+-----------------------------------------+---------------------------------------------+
| back_log                                | 50                                          |
| binlog_cache_size                       | 32768                                       |
| binlog_direct_non_transactional_updates | OFF                                         |
| binlog_format                           | MIXED                                       |
| expire_logs_days                        | 0          #这个默认是0,也就是logs不过期
下面先通过手动删除这些日志文件,然后再设置expire_logs_days的值,超过7天的日志就自动删除。
mysql> purge master logs to 'mysql-bin.002970';  #表示将主库的日志记录清除到以'mysql-bin.002970'为开始的日志。
Query OK, 0 rows affected (1 min 30.29 sec)

mysql> set global expire_logs_days=7;            #这个是全局变量,重启mysql就不会生效了
Query OK, 0 rows affected (0.00 sec)

mysql> flush logs;
Query OK, 0 rows affected (3.97 sec)
另外一种方法就是修改/etc/my.cnf,在mysqld下面添加一行即可。重启mysql永久生效,只保留7天的二进制日志。
expire_logs_days = 7


本文出自 “运维,你好” 博客,请务必保留此出处http://denghaibin.blog.51cto.com/4128215/1660494
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: