mysql-bin占用空间太大 清理删除mysql日志文件

博客因服务器磁盘用完无法访问,今天索性彻底清理下大文件。

查找磁盘大文件,大于100M文件如下
find / -type f -size +100M

大文件内容主要为/usr/local/src下下载的软件以及mysql产生的log-bin日志(其中有4G+)

mysql-bin.000001 ... 文件为mysql数据库的日志文件,用于记录mysql的语句执行,主要用于:

  1. 数据恢复
    如数据库出现问题或操作失误等,可通过查看日志文件查找对应命令或恢复
  2. 主从服务器之间同步数据
    主服务器上所有的操作都在记录文件中,从服务器可根据日志进行,确保两者同步

解决:
如果只有一个mysql服务器,对数据库操作没有严格要求,可通过注释/etc/my.cnflog-bin一行,重启mysql服务。同时删除之前日志文件。(登陆mysql执行:reset master命令即可)

如果为主从服务器,则:

  1. 在每个从服务器上执行show slave status检查该从服务器正在读取哪个日志
  2. 使用show master logs获取主服务器上的一系列日志
  3. 在所有的从服务器中判断最早的日志,这个是目标日志,如果所有的从服务器是更新的,就是清单上的最后一个日志
  4. 清理所有除目标日志的其他日志

清理日志方法:
purge master logs to 'mysql-bin.000001'
purge master logs before '2018-08-31 22:08:00'
如果确定所有从服务器已经同步跟主服务器一致,则可直接执行reset master命令

Tags: 运维

添加新评论