MYSQL Binary Logs

MYSQL 8 aktiviert, im Gegensatz zu seinen Vorgänger Versionen, standardmäßig das Binary Log. Diese Logs finden Verwendung in der Replikation des MYSQL Servers und bei manchen Daten Wiederherstellungsoperationen.

Außerhalb dieser beiden Verwendungszwecke werden sie jedoch nicht benötigt, können aber unter Umständen sehr viel Speicherplatz einnehmen.

Dieser Artikel soll zeigen wie die Logs gelöscht, eingeschränkt oder auch gänzlich deaktiviert werden können.

MYSQL Binary Logs löschen

Zunächst einmal sollte man sich einen Überblick über die vorhanden Logs verschaffen.

Bewerkstelligen lässt sich dies mit folgendem Statement:

show binary logs;

Nun gibt es zwei Wege die vorhandenen Logs zu löschen.

Zum einen kann der Log_name verwendet werden um alle Logs die älter als der angegebene Log sind zu entfernen.

PURGE BINARY LOGS TO 'Log_name';

Des Weiteren kann ein Datum verwendet werden um alle älteren Logs zu löschen.

PURGE BINARY LOGS BEFORE '2021-05-19 22:46:26';

MYSQL Bin Log Konfigurieren

Die Dateigröße sowie die Vorhaltezeit der Bin Logs kann angepasst werden um zu verhindern, dass diese zu viel Speicherplatz einnehmen.

Hierzu muss der [mysqld] Block in der entsprechenden .cnf Datei angepasst werden.

Auf Ubuntu ist diese beispielsweise unter dem Pfad „/etc/mysql/mysql.conf.d/mysqld.cnf“ zu finden.

Suchen sie hier nach folgendem Parameter um die Dateigröße der Bin Logs anzupassen:

max_binlog_size   = 100M

Oder passen Sie die Vorhaltezeit der Bin Log Dateien an.

binlog_expire_logs_seconds    = 2592000

Sind die Parameter nicht vorhanden können Sie einfach ans Ende des [mysqld] Blocks hinzugefügt werden.

Damit die neue Konfiguration aktiviert wird muss der MYSQL Dienst neu gestartet werden.

Zusätzlich ist zu beachten, dass die Logs basierend auf dem Parameter binlog_expire_logs_seconds nicht sofort gelöscht werden sobald das entsprechende Alter erreicht ist, sondern wenn eine der drei Bedingungen erfüllt ist:

  • MYSQL wurde gestartet
  • Statement „flush logs;“ wurde ausgeführt
  • Das Schreiben einer Log Datei ist abgeschlossen

MYSQL Bin Log deaktivieren

Ist das Bin Logging vollkommen unerwünscht können Sie dem Ende des [mysqld] Blocks folgenden Parameter hinzufügen und den Dienst anschließend neu starten.

Achtung! Die bestehenden MYSQL Bin Logs werden dadurch nicht gelöscht! Wollen Sie die bestehenden Logs löschen sollten Sie dies tun bevor Sie das Bin Logging deaktivieren.

[mysqld]
.
.
.
disable_log_bin
/etc/init.d/mysql restart

Tim Perelli
Letzte Artikel von Tim Perelli (Alle anzeigen)