当前位置: 首页 > news >正文

【清理mysql数据库服务器二进制日志文件】

清理前后比对

清理前占用 86%

在这里插入图片描述

清理后占用 29%

在这里插入图片描述

排查占用磁盘较大的文件

 检测磁盘空间占用 TOP 10

# 检测磁盘空间占用 TOP 10
$ sudo du -S /var/log/ | 
> sort -rn | 	# -n选项允许按数字排序。-r选项会先列出最大数字(逆序)
> sed '{11,$D; =}' | 	# = 加入行号;11,$D:删除11行之后的内容
> sed 'N; s/\n/ /' | 	# N 让行号和磁盘空间文本位于同一行
> gawk '{printf $1 ":" "\t" $2 "\t" $3 "\n"}' 

 可以看到/var/lib/mysql目录占用较大,该文件用于存储 MySQL 数据文件。

[root@hostname ~]# du -S / | sort -rn | sed '{11,$D; =}' | sed 'N; s/\n/ /' | gawk '{printf $1 ":" "\t" $2 "\t" $3 "\n"}'
1:      21181696        /var/lib/mysql
2:      2609180 /var/lib/mysql/gvm
3:      719736  /usr/sbin
4:      572516  /usr/bin
5:      328404  /usr/lib64/mysql
6:      251264  /var/cache/yum/x86_64/7/updates/gen
7:      149844  /root/tomcat/upload/assetVul/testReport
8:      149844  /root/20230712bak_tomcat/upload/assetVul/testReport
9:      132532  /usr/lib/firmware
10:     131284  /usr/lib64

 再查看下/var/lib/mysql目录中mysql-bin.0*文件比较多,而且占用很多磁盘空间。

 这些文件是用于记录 MySQL 数据库的操作行为,用于数据恢复和主从数据同步。
 在机器的磁盘空间不足,而又不考虑 MySQL 历史数据恢复的情况下可以删除;

[root@hostname ~]# du -sh /var/lib/mysql/* | sort -rn | sed '{11,$D; =}' | sed 'N; s/\n/ /' | gawk '{printf $1 ":" "\t" $2 "\t" $3 "\n"}'
1:      831M    /var/lib/mysql/mysql-bin.000005
2:      799M    /var/lib/mysql/mysql-bin.000004
3:      786M    /var/lib/mysql/mysql-bin.000022
4:      680K    /var/lib/mysql/sys
5:      647M    /var/lib/mysql/mysql-bin.000009
6:      571M    /var/lib/mysql/mysql-bin.000017
7:      492K    /var/lib/mysql/mysql-bin.000001
8:      480K    /var/lib/mysql/mysql-bin.000002
9:      217M    /var/lib/mysql/mysql-bin.000027
10:     182M    /var/lib/mysql/mysql-bin.000031

mysql-bin 开头的文件是 MySQL 二进制日志文件的一部分,它们会按照一定的命名规则和序号进行存储,如 mysql-bin.000001mysql-bin.000002 等。这些文件在 MySQL 数据库运行过程中会不断增长,记录数据库的操作历史。

清理数据

# service mysqld stop# cd /var/lib/mysql
# rm -rf mysql-bin.0*
# echo > mysql-bin.index	# 将删除了的文件名从该文件中删除# service mysqld start

 假如删除的mysql日志文件(mysql-bin.00000*)后,发现mysql启动不了。那么就将mysql-bin.index也删除,然后就可以正常启动了。

如果想不考虑 MySQL 历史数据恢复,可以永久禁止生产二进制日志文件:

# vim /etc/my.cnf
# 注释掉 log-bin=mysql-bin# service mysqld start

my.cnf文件所在目录可能不一样,如果不知道my.cnf文件位置:

# find / -name "my.cnf"

相关文章:

  • 如何在 Linux 中快速清空文件而不删除它们?
  • 恭喜莱佛士学生在SPADE室内设计大赛中一举拿下11个奖项
  • 鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
  • Azkaban 大数据 任务调度
  • 认识通讯协议——TCP/IP、UDP协议的区别,HTTP通讯协议的理解
  • 【洛谷 P8682】[蓝桥杯 2019 省 B] 等差数列 题解(数学+排序+辗转相除法)
  • 750541-89-0,mPEG4 phosphonic acid,可以作为催化剂、络合剂
  • spring、springmvc、springboot框架的介绍
  • NOIP 2009普及组初赛试题及解析
  • RunnerGo UI自动化测试脚本如何配置
  • 了解游戏中的数据同步
  • java框架八股
  • Node.js中的并发和多线程处理
  • Java毕业设计 基于SpringBoot vue 社团管理系统
  • 【wpf】关于绑定的一点明悟
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • iOS | NSProxy
  • Java IO学习笔记一
  • JavaScript异步流程控制的前世今生
  • Java超时控制的实现
  • js算法-归并排序(merge_sort)
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Redis学习笔记 - pipline(流水线、管道)
  • Redux 中间件分析
  • Spring Boot MyBatis配置多种数据库
  • 从零搭建Koa2 Server
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 力扣(LeetCode)21
  • 力扣(LeetCode)22
  • 前端路由实现-history
  • 赢得Docker挑战最佳实践
  • 正则学习笔记
  • 容器镜像
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #if 1...#endif
  • #前后端分离# 头条发布系统
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (一) springboot详细介绍
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)http协议
  • (转)Linux整合apache和tomcat构建Web服务器
  • .CSS-hover 的解释
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .java 9 找不到符号_java找不到符号
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...