【清理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"
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值