前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >磁盘打满解决方式及思路

磁盘打满解决方式及思路

作者头像
陈哈哈
发布2020-07-08 10:33:21
9610
发布2020-07-08 10:33:21
举报
文章被收录于专栏:MySQL入坑记MySQL入坑记

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

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

磁盘打满截图:

排查方式:

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

查询命令:

代码语言:javascript
复制
find / -type f -size +1G | xargs ls -lat

从图中我们发现占用磁盘的大多是 /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 只保存近三天操作日志

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

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

代码语言:javascript
复制
echo "" > /var/log/mysqld.log

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

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

代码语言:javascript
复制
#置空:
echo "" > access.log0005*

#删除:
rm -f access.log0005*
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 排查方式:
    • 一、处理/var/lib/mysql/mysql-bin.000xxx文件:
      • 二、处理/var/log/mysqld.log文件
        • 三、处理其他(日志)文件
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档