web-dev-qa-db-de.com

Wie kann ich die ibtmp1-Datei in MySQL bereinigen oder ihre Größe ändern?

MySQL 5.7 führt eine neue Datei ibtmp1 zum Speichern temporärer Daten in InnoDB ein, um die Leistung zu steigern.

Aber ich habe festgestellt, dass seine Größe kontinuierlich zunimmt. Auf meinem Datenbankserver erhöht sich seine Größe auf 92 GB.

Gibt es eine Möglichkeit, die Größe zu reduzieren oder die Datei zu löschen ohne den Server neu zu starten?

Vielen Dank

22
Aman Aggarwal

Das einmal erstellte ibtmp1 kann mit keiner Methode verkleinert werden, ohne den MySQL-Dienst neu zu starten.

Es gibt zwei Möglichkeiten, damit umzugehen:

Vorsichtsmaßnahme : Zum Zeitpunkt des Serverstarts sollten Sie die Größe dieser Datei wie folgt begrenzen:

 innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G

dabei bedeutet max 5G, dass diese Dateigröße auf 5 GB begrenzt ist.

Cure : Wenn die Datei bereits erstellt wurde, müssen Sie den Dienst neu starten:

SET GLOBAL innodb_fast_shutdown = 0;
Shutdown MySQL
remove ibtmp1
start MySQL.

Dokumente: https://dev.mysql.com/doc/refman/5.7/en/innodb-temporary-tablespace.html

35
Aman Aggarwal