我的 Webmin 顯示一條錯誤訊息,指出磁碟已滿。經過調查,我發現裡面/var/lib/mysql
有3個文件太大了:
- mysql.ibd (8.8G)
- 撤銷_001 (8.4G)
- 撤銷_003(2.5G)
我用谷歌搜尋是否可以刪除這些文件,但建議是針對 mysql.ibd 的,而 undo_001 和 undo_002 沒有明確的訊息。
如何安全地刪除檔案以及將哪些檔案還原到伺服器?截至目前,0 位元組是免費的,我在伺服器上無能為力。
另一個問題是如何防止這些文件變得太大。
答案1
如何安全地刪除檔案以及將哪些檔案還原到伺服器?截至目前,0 位元組是免費的,我在伺服器上無能為力。
不直接。您將需要從 mysql 中刪除表以釋放空間。請注意,如果您已設置,這僅適用於 innodbinnodb_file_per_table
否則您將需要刪除表,創建整個資料庫的轉儲並重新加載它(是的......這需要空間)。否則資料庫檔案不會收縮。
更簡單的方法是刪除系統上的其他檔案。
關於2個UNDO檔:
刪除UNDO表空間的指令:
ALTER UNDO TABLESPACE tablespace_name SET INACTIVE;
DROP UNDO TABLESPACE tablespace_name;
您可以在 MySQL 提示字元下執行此操作。您將失去回滾的能力。
請不要將您的 mysql 資料庫與您的根系統放在同一系統上。使用分割區或不同的磁碟。如果您只使用 1 個磁碟,通常會將其放在/var/
自己的分割區上。這將防止 root 充滿。
要釋放空間,也可以查看末尾/var/log/
帶有任何內容的內容都可以刪除。.gz
對於以數字結尾的文件也是如此*[0-9]
。這些都是日誌檔案的備份,有時它們也會變得很大。
這將自動截斷撤銷日誌:
SET GLOBAL innodb_undo_log_truncate=ON;