视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
解决"mysql-bin.000001"占用超大空间的问题_MySQL
2020-11-09 18:13:58 责编:小采
文档

bitsCN.com

最近几个月服务器总是频繁当机,导致比尔盖子的可用性得不到保证。但说也奇怪,当机的时候,服务器可以正常连接,Nginx也看似正常,但就是PHP-FPM失去响应。后来无意中df -h一下,发现:
rootfs 7.7G 7.7G 0 100% /

根目录满了!便认为是日志太多,清理了下日志。但基本每个一个星期日志就会满。弄得比尔盖子不得安宁。后来就把/var分区了,但依然不奏效,有多少占多少。也清理过/var/tmp和/var/cache,但效果依然有限。

今天,耐着性子du -ah,发现/var/lib/mysql占用空间异常,cd到这里ls -lh后发现:
-rw-rw---- 1 mysql mysql 5242880 Feb 27 14:49 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 Dec 27 17:55 ib_logfile1
-rw-rw---- 1 mysql mysql 588M Mar 12 02:03 maria_log.00000003
-rw-rw---- 1 mysql mysql 52 Mar 12 01:54 maria_log_control
drwx------ 2 mysql root 4.0K Jan 15 14:28 mysql
-rw-rw---- 1 mysql mysql 20K Dec 27 17:54 mysqld-bin.000001
-rw-rw---- 1 mysql mysql 715K Dec 27 17:54 mysqld-bin.000002
-rw-rw---- 1 mysql mysql 625 Dec 28 11:46 mysqld-bin.000003
-rw-rw---- 1 mysql mysql 125 Dec 27 18:20 mysqld-bin.000004
-rw-rw---- 1 mysql mysql 125 Dec 27 18:20 mysqld-bin.000005
-rw-rw---- 1 mysql mysql 125 Dec 27 18:21 mysqld-bin.000006
-rw-rw---- 1 mysql mysql 125 Dec 27 18:21 mysqld-bin.000007
-rw-rw---- 1 mysql mysql 125 Dec 27 18:22 mysqld-bin.000008
-rw-rw---- 1 mysql mysql 125 Dec 27 18:22 mysqld-bin.000009
-rw-rw---- 1 mysql mysql 20K Dec 27 18:22 mysqld-bin.000010
-rw-rw---- 1 mysql mysql 715K Dec 27 18:22 mysqld-bin.000011
-rw-rw---- 1 mysql mysql 125 Dec 27 18:24 mysqld-bin.000012
-rw-rw---- 1 mysql mysql 125 Dec 27 18:25 mysqld-bin.000013
-rw-rw---- 1 mysql mysql 125 Dec 27 18:27 mysqld-bin.000014
-rw-rw---- 1 mysql mysql 125 Dec 28 09:55 mysqld-bin.000015
-rw-rw---- 1 mysql mysql 125 Dec 28 11:41 mysqld-bin.000016
-rw-rw---- 1 mysql mysql 125 Dec 28 11:42 mysqld-bin.000017
-rw-rw---- 1 mysql mysql 125 Dec 28 12:07 mysqld-bin.000018
-rw-rw---- 1 mysql mysql 1.4K Dec 28 12:49 mysqld-bin.000019
-rw-rw---- 1 mysql mysql 125 Dec 28 16:31 mysqld-bin.000020
-rw-rw---- 1 mysql mysql 107M Dec 28 18:30 mysqld-bin.000021
-rw-rw---- 1 mysql mysql 1.2M Dec 30 09:22 mysqld-bin.000022
-rw-rw---- 1 mysql mysql 125 Dec 30 09:26 mysqld-bin.000023
-rw-rw---- 1 mysql mysql 3.8K Dec 30 12:29 mysqld-bin.000024
-rw-rw---- 1 mysql mysql 59M Jan 11 21:34 mysqld-bin.000025
-rw-rw---- 1 mysql mysql 10M Jan 14 15:16 mysqld-bin.000026
-rw-rw---- 1 mysql mysql 186K Jan 15 05:16 mysqld-bin.000027
-rw-rw---- 1 mysql mysql 21K Jan 15 14:46 mysqld-bin.000028
-rw-rw---- 1 mysql mysql 13K Jan 15 15:12 mysqld-bin.000029
-rw-rw---- 1 mysql mysql 62M Jan 17 16:36 mysqld-bin.000030
-rw-rw---- 1 mysql mysql 63M Jan 18 17:10 mysqld-bin.000031
-rw-rw---- 1 mysql mysql 125 Jan 18 17:16 mysqld-bin.000032
-rw-rw---- 1 mysql mysql 21K Jan 18 17:23 mysqld-bin.000033
-rw-rw---- 1 mysql mysql 118M Jan 22 12:41 mysqld-bin.000034
-rw-rw---- 1 mysql mysql 209K Jan 22 12:59 mysqld-bin.000035
-rw-rw---- 1 mysql mysql 117M Jan 28 11:59 mysqld-bin.000036
-rw-rw---- 1 mysql mysql 125 Jan 28 13:46 mysqld-bin.000037
-rw-rw---- 1 mysql mysql 24M Jan 28 16:01 mysqld-bin.000038
-rw-rw---- 1 mysql mysql 460K Jan 28 16:10 mysqld-bin.000039
-rw-rw---- 1 mysql mysql 7.0M Jan 28 16:52 mysqld-bin.000040
-rw-rw---- 1 mysql mysql 2.3M Jan 28 17:12 mysqld-bin.000041
-rw-rw---- 1 mysql mysql 2.1M Jan 28 17:27 mysqld-bin.000042
-rw-rw---- 1 mysql mysql 173K Jan 28 17:37 mysqld-bin.000043
-rw-rw---- 1 mysql mysql 378K Jan 28 17:44 mysqld-bin.000044
-rw-rw---- 1 mysql mysql 79K Jan 28 17:50 mysqld-bin.000045
-rw-rw---- 1 mysql mysql 272K Jan 28 18:12 mysqld-bin.000046
-rw-rw---- 1 mysql mysql 156K Jan 28 18:15 mysqld-bin.000047
-rw-rw---- 1 mysql mysql 962K Jan 28 18:33 mysqld-bin.000048
-rw-rw---- 1 mysql mysql 43K Jan 28 18:40 mysqld-bin.000049
-rw-rw---- 1 mysql mysql 28M Jan 29 11:43 mysqld-bin.000050
-rw-rw---- 1 mysql mysql 125 Jan 29 11:46 mysqld-bin.000051
-rw-rw---- 1 mysql mysql 139K Jan 29 12:37 mysqld-bin.000052
-rw-rw---- 1 mysql mysql 135K Jan 29 12:44 mysqld-bin.000053
-rw-rw---- 1 mysql mysql 409M Feb 9 23:18 mysqld-bin.000054
-rw-rw---- 1 mysql mysql 482M Feb 17 09:37 mysqld-bin.000055
-rw-rw---- 1 mysql mysql 542M Feb 27 12:30 mysqld-bin.000056
-rw-rw---- 1 mysql mysql 125 Feb 27 12:31 mysqld-bin.000057
-rw-rw---- 1 mysql mysql 125 Feb 27 14:48 mysqld-bin.000058
-rw-rw---- 1 mysql mysql 854M Mar 13 12:08 mysqld-bin.000059
-rw-rw---- 1 mysql mysql 1.1K Feb 27 14:49 mysqld-bin.index

上帝老天爷,这些log和bin都是什么玩意儿?!最后找到资料:
mysql-bin.000001、mysql-bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。这主要是用于操作审查和多数据库同步的。ib_logfile则是用来记录InnoDB的表一致性的,只有在当机后才能发挥作用。maria_log.00000003则是比尔盖子使用的MariaDB特有的文件,作用也差不多。

但是对比尔盖子来说,没有主从数据库,也不用审查操作,这些文件完全没有任何用处!因此,首先清理一下这些文件。然后编辑mysql配置文件,组织其再记录这些日志,铲草除根。Gentoo的MySQL日志在/etc/mysql/my.cnf。把里面的log-bin这一行注释掉。

然后重启MySQL服务器,问题搞定!可用空间瞬间增加数GB!

作者 biergaizi2009

bitsCN.com

下载本文
显示全文
专题