Was passiert mit MySQL, wenn der Speicherplatz voll ist? Wie sollen wir reagieren?
Wenn der Speicherplatz voll ist, kann MySQL keine weiteren Daten schreiben, einschließlich des Schreibens in Tabellendaten und Binlog. binlog-index und andere Dateien.
Da InnoDB schmutzige Daten zuerst im Speicher speichern kann, wird die Schreibanforderung nicht sofort angezeigt, es sei denn, Binlog ist aktiviert.
Wenn MySQL erkennt, dass der Speicherplatz voll ist, wird es Folgendes tun:
Was sollen wir dann tun, wenn wir feststellen, dass der Speicherplatz voll ist? ? Vorschläge:
Jede Minute: Überprüfen Sie, ob Speicherplatz freigegeben wurde, damit neue Daten geschrieben werden können. Wenn festgestellt wird, dass noch Speicherplatz vorhanden ist, werden die Daten weiterhin geschrieben und alles läuft wie gewohnt weiter.
Alle zehn Minuten: Wenn immer noch festgestellt wird, dass kein Speicherplatz mehr vorhanden ist, wird ein Eintrag in das Protokoll geschrieben, um zu melden, dass der Speicherplatz voll ist (es werden nur einige Bytes geschrieben). reicht derzeit aus).
Erhöhen Sie die Erkennungshäufigkeit des Überwachungssystems, um ein erneutes Auftreten zu verhindern;
Löschen Sie nicht verwendete Dateien rechtzeitig, um Speicherplatz freizugeben
Wenn ein Thread blockiert ist, weil die Festplatte voll ist, können Sie ihn zuerst beenden und er kann möglicherweise wieder normal funktionieren, wenn Sie ihn nächste Minute erneut überprüfen
Möglicherweise sind einige Threads blockiert, da die Festplatte voll ist, was dazu führt, dass andere Threads blockiert werden. Sie können den blockierenden Thread beenden und andere blockierte Threads können weiterarbeiten.
Es gibt eine Ausnahme:
Beim Ausführen der Operation REPAIR TABLE oder OPTIMIZE TABLE oder nach der Ausführung von LOAD DATA INFILE oder ALTER Beim Aktualisieren der Indizieren Sie in Stapeln nach TABLE. Bei der Ausführung dieser Vorgänge stellt mysqld fest, dass der Speicherplatz voll ist, markiert die betroffene Tabelle als abgestürzt und löscht die temporären Dateien (mit Ausnahme von ALTER TABLE-Vorgängen und MySQL-Vorgängen). (Der ausgeführte Vorgang wird abgebrochen, temporäre Dateien werden gelöscht und Speicherplatz wird freigegeben.)
Hinweis: Wenn der mysqld-Prozess während der Ausführung dieser Befehle versehentlich beendet wird, werden die generierten temporären Dateien nicht automatisch gelöscht und müssen manuell gelöscht werden, um Speicherplatz freizugeben.
Das Obige passiert mit MySQL, wenn der Speicherplatz voll ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!