Mysql

我的磁碟充滿了 binlog 文件

  • February 3, 2022

我剛剛意識到我的伺服器每天增長 2 GB,這是不正常的。

我查看了我的文件夾,文件夾 /var/lib/mysql 達到了 26 GB

通常它應該是大約 4 GB

一個月前,我將 MySQL 5.7 數據庫遷移到 MySQL 8.0

我認為我的磁碟充滿了 binlog 文件。

我想知道為什麼這些文件突然變大了?

如何在不損壞數據庫的情況下解決此問題?

total 26511376
-rw-r----- 1 mysql mysql         56 Aug 19  2018  auto.cnf
-rw-r----- 1 mysql mysql        178 Mar 10 06:07  binlog.000001
-rw-r----- 1 mysql mysql   73883481 Mar 10 06:25  binlog.000002
-rw-r----- 1 mysql mysql   58601919 Mar 10 13:13  binlog.000003
-rw-r----- 1 mysql mysql  178322334 Mar 11 06:25  binlog.000004
-rw-r----- 1 mysql mysql  379019579 Mar 12 06:25  binlog.000005
-rw-r----- 1 mysql mysql 1075214425 Mar 13 02:10  binlog.000006
-rw-r----- 1 mysql mysql  710899072 Mar 13 06:25  binlog.000007
-rw-r----- 1 mysql mysql 1073746776 Mar 13 20:15  binlog.000008
-rw-r----- 1 mysql mysql  616483095 Mar 14 06:25  binlog.000009
-rw-r----- 1 mysql mysql 1073836859 Mar 15 00:38  binlog.000010
-rw-r----- 1 mysql mysql 1074301774 Mar 15 03:52  binlog.000011
-rw-r----- 1 mysql mysql 1073936970 Mar 15 04:10  binlog.000012
-rw-r----- 1 mysql mysql 1073793229 Mar 15 04:43  binlog.000013
-rw-r----- 1 mysql mysql  324536092 Mar 15 06:25  binlog.000014
-rw-r----- 1 mysql mysql 1074204920 Mar 15 11:00  binlog.000015
-rw-r----- 1 mysql mysql 1074309915 Mar 16 01:10  binlog.000016
-rw-r----- 1 mysql mysql  323166533 Mar 16 06:25  binlog.000017
-rw-r----- 1 mysql mysql  290236337 Mar 16 20:46  binlog.000018
-rw-r----- 1 mysql mysql  236901439 Mar 17 06:25  binlog.000019
-rw-r----- 1 mysql mysql  480168672 Mar 18 06:25  binlog.000020
-rw-r----- 1 mysql mysql  709223503 Mar 19 06:25  binlog.000021
-rw-r----- 1 mysql mysql 1074813984 Mar 19 17:17  binlog.000022
-rw-r----- 1 mysql mysql 1073759979 Mar 20 04:20  binlog.000023
-rw-r----- 1 mysql mysql  272250245 Mar 20 06:25  binlog.000024
-rw-r----- 1 mysql mysql 1073741888 Mar 20 10:48  binlog.000025
-rw-r----- 1 mysql mysql 1075360653 Mar 20 16:33  binlog.000026
-rw-r----- 1 mysql mysql 1073743148 Mar 21 05:25  binlog.000027
-rw-r----- 1 mysql mysql  540261003 Mar 21 06:25  binlog.000028
-rw-r----- 1 mysql mysql  824878670 Mar 22 06:25  binlog.000029
-rw-r----- 1 mysql mysql  648554142 Mar 23 06:25  binlog.000030
-rw-r----- 1 mysql mysql 1015179916 Mar 24 06:25  binlog.000031
-rw-r----- 1 mysql mysql 1073772614 Mar 24 15:00  binlog.000032
-rw-r----- 1 mysql mysql 1073750944 Mar 25 00:09  binlog.000033
-rw-r----- 1 mysql mysql 1074307838 Mar 25 01:18  binlog.000034
-rw-r----- 1 mysql mysql   49166468 Mar 25 06:25  binlog.000035
-rw-r----- 1 mysql mysql 1074699799 Mar 25 09:13  binlog.000036
-rw-r----- 1 mysql mysql  896120152 Mar 25 16:15  binlog.000037
-rw-r----- 1 mysql mysql      11512 Mar 25 16:21  binlog.000038
-rw-r----- 1 mysql mysql      83159 Mar 25 16:40  binlog.000039
-rw-r----- 1 mysql mysql        624 Mar 25 16:21  binlog.index
-rw------- 1 mysql mysql       1679 Mar 10 05:58  ca-key.pem
-rw-r--r-- 1 mysql mysql       1107 Mar 10 05:58  ca.pem
-rw-r--r-- 1 mysql mysql       1107 Mar 10 05:58  client-cert.pem
-rw------- 1 mysql mysql       1675 Mar 10 05:58  client-key.pem
-rw-r--r-- 1 mysql mysql          0 Jan 24 07:58  debian-5.7.flag
-rw-r----- 1 mysql mysql      18030 Mar 25 16:15  ib_buffer_pool
-rw-r----- 1 mysql mysql   79691776 Mar 25 16:40  ibdata1
-rw-r----- 1 mysql mysql   50331648 Mar 25 16:40  ib_logfile0
-rw-r----- 1 mysql mysql   50331648 Mar 25 15:25  ib_logfile1
-rw-r----- 1 mysql mysql   12582912 Mar 25 16:21  ibtmp1
drwxr-x--- 2 mysql mysql       4096 Mar 25 16:21 '#innodb_temp'
drwxr-x--- 2 mysql mysql       4096 Mar 10 06:05  mysql
-rw-r----- 1 mysql mysql   37748736 Mar 25 16:40  mysql.ibd
-rw-r--r-- 1 mysql mysql          6 Mar 10 06:05  mysql_upgrade_info
drwxr-x--- 2 mysql mysql       4096 Mar 10 06:04  performance_schema
drwxr-x--- 2 mysql mysql       4096 Mar 10 06:04  phpmyadmin
-rw------- 1 mysql mysql       1675 Mar 10 05:58  private_key.pem
-rw-r--r-- 1 mysql mysql        451 Mar 10 05:58  public_key.pem
-rw-r--r-- 1 mysql mysql       1107 Mar 10 05:58  server-cert.pem
-rw------- 1 mysql mysql       1679 Mar 10 05:58  server-key.pem
drwxr-x--- 2 mysql mysql      12288 Mar 10 06:04  sys
-rw-r----- 1 mysql mysql   13631488 Mar 25 16:40  undo_001
-rw-r----- 1 mysql mysql   13631488 Mar 25 16:40  undo_002
drwxr-x--- 2 mysql mysql     110592 Mar 25 15:25  www_example_com

嘗試使用 PURGE 命令刪除二進制日誌。供參考:文件

同時更新以下變數binlog_expire_logs_seconds以確保自動刪除二進制日誌。

我想知道為什麼這些文件突然變大了?

一個可能的原因是在 MySQL 5.7 之前expire_logs_days的預設值是10 days。但從 MySQL 8.0.11開始, binlog_expire_logs_seconds的預設值為30 days。所以日誌文件沒有定期輪換。如果我錯了,請糾正我。

引用自:https://dba.stackexchange.com/questions/233048