Innodb

如何刪除 Mariadb 臨時文件

  • December 23, 2021

我有一個 /mariadb_tmp 目錄(在我的 mariadb-server.cnf 中指定),其中充滿了可追溯到去年 11 月的文件。

-rw-rw---- 1 mysql mysql   1032192 Nov 19 07:47 #sql899_5d5_0.ibd
-rw-rw---- 1 mysql mysql    278528 Nov 19 09:30 #sql899_ab8f_0.ibd
-rw-rw---- 1 mysql mysql    278528 Nov 19 09:30 #sql899_ad17_0.ibd
-rw-rw---- 1 mysql mysql    638976 Nov 19 09:32 #sql899_baf3_0.ibd
-rw-rw---- 1 mysql mysql    409600 Nov 19 09:32 #sql899_bbec_0.ibd
-rw-rw---- 1 mysql mysql    262144 Nov 19 09:35 #sql899_c96a_0.ibd
...
-rw-rw---- 1 mysql mysql    704512 Jan 16 10:08 #sql899_603c0c4_1.ibd
-rw-rw---- 1 mysql mysql    540672 Jan 16 10:08 #sql899_603c123_0.ibd
-rw-rw---- 1 mysql mysql 494927872 Jan 16 10:20 #sql899_603eb7b_0.ibd
-rw-rw---- 1 mysql mysql    606208 Jan 16 10:27 #sql899_60470ff_1.ibd

Google搜尋“刪除舊的 mariadb 臨時文件”會導致以下建議:

drop table `#sql899_5d5_0`;

這會導致錯誤“未選擇數據庫”。當然,我不知道每個 tmp 文件來自哪個數據庫,所以我不知道這是否可行。

這些沒有 *.frm 文件,它們位於指定的 tmpdir 目錄中,而不是 datadir 中。

知道如何清理這些嗎?它們佔用了磁碟上的大量空間,我們真的無法擴展(出於非技術原因),我們也不應該將這些空間保留那麼長時間。

謝謝,

艾德格林伯格

在檢查它們未附加到活動程序後ls -la /proc/$(pidof mysqld)/fd, 或fuser {filename},可以使用 刪除它們rm

從 MariaDB-10.4 開始,您應該不會再看到這些在磁碟上創建(MDEV-15584)。

我經常使用以下命令:

sudo find /tmp -type f -atime +10 -delete

或者

find /tmp/* -type d -mtime +5 -print0 | xargs -0 rm -rf

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