it-swarm.com.de

Wie schnell nach dem Aktualisieren des Parameters expire_logs_days und dem Neustart von sql werden alte Binlogs gelöscht?

MySQL 5.1.x | InnoDB | Windows

Mein MySQL-Datenverzeichnis füllt sich langsam mit Bin-Protokollen.

Derzeit sind auf meinem Windows-MySQL-Server die folgenden Einstellungen konfiguriert:

[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=25

Ich plane, die Einstellung expire_logs_days in expire_logs_days=10 Zu ändern und den MySQL-Dienst zu bouncen. Wie schnell nach dieser Änderung kann ich damit rechnen, dass die alten Papierkorbprotokolle gelöscht werden.

Wird dies nur im Rahmen einer nächtlichen geplanten Aufgabe durchgeführt? Oder sollte das sofort sein?

16
Mike B

Es wird sofort beim Start von MySQL behandelt.

Sie müssen nicht auf einen MySQL-Neustart warten.

Setzen Sie zuerst expire_logs_days In /etc/my.cnf auf 10

[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=10

Melden Sie sich als Nächstes bei MySQL an und führen Sie dies aus

PURGE BINARY LOGS BEFORE (date(now()) + interval 0 second - interval 10 day);

Notieren Sie Datum und Uhrzeit der Abfrage

mysql> select date(now()) + interval 0 second - interval 10 day;
+---------------------------------------------------+
| date(now()) + interval 0 second - interval 10 day |
+---------------------------------------------------+
| 2012-12-11 00:00:00                               |
+---------------------------------------------------+
1 row in set (0.00 sec)

mysql>

Daher löscht der Befehl PURGE BINARY LOGS alle Binlogs, deren Datums-/Uhrzeitstempel vor 2012-12-11 00:00:00 Liegt.

Führen Sie abschließend diesen Befehl aus

SET GLOBAL expire_logs_days = 10;

Das ist es. Für die Installation von expire_logs_days ist kein Neustart erforderlich.

Für die Replikationsparameter ist ein Neustart erforderlich.

29
RolandoMySQLDBA