Mein Webmin zeigte eine Fehlermeldung an, dass die Festplatte voll sei. Bei der Untersuchung stellte ich fest, dass drei Dateien darin /var/lib/mysql
zu groß geworden waren:
- mysql.ibd (8,8 G)
- undo_001 (8,4 G)
- undo_003 (2,5 G)
Ich habe gegoogelt, um zu prüfen, ob diese Dateien entfernt werden können, aber der Vorschlag war gegen mysql.ibd, während es keine klaren Informationen zu undo_001 und undo_002 gab.
Wie kann ich Dateien sicher entfernen und welche auf dem Server wiederherstellen? Derzeit sind 0 Bytes frei und ich kann auf dem Server nichts tun.
Eine weitere Frage ist, wie verhindert werden kann, dass diese Dateien so groß werden.
Antwort1
Wie kann ich Dateien sicher entfernen und welche auf dem Server wiederherstellen? Derzeit sind 0 Bytes frei und ich kann auf dem Server nichts tun.
Nicht direkt. Sie müssen Tabellen aus MySQL löschen, um Speicherplatz freizugeben. Beachten Sie, dass dies für InnoDB nur funktioniert, wenn Sie Folgendes festgelegt haben: innodb_file_per_table
Andernfalls müssen Sie Tabellen löschen, einen Dump Ihrer gesamten Datenbank erstellen und diesen neu laden (und ja ... das erfordert Speicherplatz). Andernfalls wird die Datenbankdatei nicht verkleinert.
Der einfachere Weg wäre, andere Dateien auf Ihrem System zu entfernen.
Bezüglich der 2 UNDO-Datei:
Die Befehle zum Entfernen des UNDO-Tabellenbereichs:
ALTER UNDO TABLESPACE tablespace_name SET INACTIVE;
DROP UNDO TABLESPACE tablespace_name;
Und Sie tun dies innerhalb der MySQL-Eingabeaufforderung. Sie verlieren dann die Möglichkeit, ein Rollback durchzuführen.
Bitte platzieren Sie Ihre MySQL-Datenbank nicht auf demselben System wie Ihr Root-System. Verwenden Sie eine Partition oder eine andere Festplatte. Wenn Sie nur eine Festplatte verwenden, war es früher üblich, sie /var/
auf einer eigenen Partition zu platzieren. Dadurch wird verhindert, dass das Root-System überlastet wird.
Um Speicherplatz freizugeben, sehen Sie sich auch /var/log/
Alles mit .gz
am Ende kann entfernt werden an. Dasselbe gilt für Dateien, die mit einer Ziffer enden *[0-9]
. Dies sind alles Backups von Protokolldateien und manchmal neigen diese dazu, auch groß zu werden.
Dadurch werden die Undo-Protokolle automatisch gekürzt:
SET GLOBAL innodb_undo_log_truncate=ON;