/dev/mapper/vg_xxx-lv_root 100% 磁盘打满解决方式及思路

上午同事反应MySQL连不上了,我到服务器上用"df -h"查一下磁盘,发现磁盘打满了。解决顺便记录一下流程:

  • 查看磁盘状态命令:df -h
  • 查看目录下各文件(夹)所占磁盘大小命令:du -sh *

磁盘打满截图:

排查方式:

如图中Mount on所示,该磁盘在 "/" 根目录下,磁盘打满;因此我们基于 "/" 目录查询较大(>1G)的文件,处理掉即可。

查询命令:

find / -type f -size +1G | xargs ls -lat

/dev/mapper/vg_xxx-lv_root 100% 磁盘打满解决方式及思路_第1张图片


从图中我们发现占用磁盘的大多是 /var/lib/mysql/mysql-bin.000xxx、/var/log/mysqld.log 等MySQL的日志文件,这些属于MySQL操作日志以及系统日志文件。我们需要处理掉这些,当然不能直接 rm 删掉,否则MySQL会报错。

一、处理/var/lib/mysql/mysql-bin.000xxx文件:

登录MySQL并执行:reset master ; 立即清空操作日志,这些日志是MySQL-binlog用于恢复误删除数据时使用的,谨慎。

其他处理方式:
1、 purge master logs to 'mysql-bin.000xxx';  //清除mysql-bin.000xxx日志

2、 purge master logs before '2020-02-28 13:00:00';  //清除2020-02-28 13:00:00前的日志

3、 purge master logs before date_sub(now(), interval 3 day);  //清除3天前的bin日志

4、 修改my.cnf文件:在 log-bin=mysql-bin 下一行加上并重启MySQL:expire_logs_days=3    只保存近三天操作日志

/dev/mapper/vg_xxx-lv_root 100% 磁盘打满解决方式及思路_第2张图片

 

二、处理/var/log/mysqld.log文件

不能直接删除,置空即可:

echo "" > /var/log/mysqld.log

三、处理其他(日志)文件

确定没有用后置空或删除:

#置空:
echo "" > access.log0005*

#删除:
rm -f access.log0005*

 

你可能感兴趣的:(Linux)