Die PURGE BINARY LOGS
Anweisung löscht alle in der Protokollindexdatei aufgelisteten binären Protokolldateien vor dem angegebenen Protokolldateinamen oder Zeitstempel. Gelöschte Protokolldateien werden ebenfalls aus der in der Indexdatei aufgezeichneten Liste entfernt, sodass die angegebene Protokolldatei die erste in der Liste wird.
Ich hoffe, Sie haben Binärprotokolle bis zur mysql-bin.000019
Verwendung des Befehls gelöscht
PURGE BINARY LOGS TO 'mysql-bin.000019';
Wenn Sie alle Protokolle löschen müssen, mögen Sie
PURGE BINARY LOGS TO 'mysql-bin.000025';
Dadurch werden binäre Protokolle bis entfernt mysql-bin.000025
.
AKTUALISIEREN
Du kannst es versuchen
RESET MASTER;
RESET MASTER
Löscht alle in der Indexdatei aufgelisteten binären Protokolldateien, setzt die leere binäre Protokollindexdatei auf leer zurück und erstellt eine neue binäre Protokolldatei
Die Auswirkungen von RESET MASTER
unterscheiden sich von denen von PURGE BINARY LOGS in zwei wesentlichen Punkten:
RESET MASTER
Entfernt alle in der Indexdatei aufgelisteten binären Protokolldateien, wobei nur eine einzige leere binäre Protokolldatei mit dem numerischen Suffix .000001 übrig bleibt, während die Nummerierung durch PURGE BINARY LOGS nicht zurückgesetzt wird.
RESET MASTER
sollte nicht verwendet werden, während Replikations-Slaves ausgeführt werden. Das Verhalten RESET MASTER
bei Verwendung während der Ausführung von Slaves ist undefiniert (und wird daher nicht unterstützt), wohingegen PURGE BINARY LOGS
es sicher verwendet werden kann, während Replikations-Slaves ausgeführt werden.
CAVEAT von RolandoMySQLDBA
Wenn Sie RESET MASTER
mit verbundenen und laufenden Slaves arbeiten, verliert der E / A-Thread jedes Slaves sofort seinen Platz. Die Replikation ist daher fehlerhaft und Sie müssen Zeit damit verbringen, die Daten aller Slaves erneut zu synchronisieren. Wenn Sie Binärprotokolle sicher von einem Master löschen möchten, ohne die Replikationsintegrität zu beeinträchtigen, gehen Sie wie folgt vor:
- Laufen Sie
SHOW SLAVE STATUS\G
auf jedem Slave.
- Beachten Sie
Relay_Master_Log_File
. Dies ist das Binärprotokoll, dessen letzte Anweisung im Slave erfolgreich ausgeführt wurde.
SHOW SLAVE STATUS\G
Bestimmen Sie anhand aller Anzeigen von , welche Relay_Master_Log_File
die älteste ist (z. B. 'mysql-bin.00123').
- Sie können ausführen
PURGE BINARY LOGS TO 'mysql-bin.00123';
Keiner der Slaves verliert seinen Platz.
Der Gesamteffekt? Dadurch bleiben auf dem Master Binärprotokolle zurück, deren Anweisungen noch nicht auf allen Slaves ausgeführt wurden.