Kapitel 5: MySQL-Datenbankadministration 317
PURGE MASTER LOGS TO
’logname’
Verf¨ugbar ab Version 3.23.28. L¨oscht alle Replikations-Logs,
die in der Index-Log-Datei aufgef¨uhrt sind, die vor dem
angegebenen Log liegen und entfernt Sie aus dem Log-Index,
so dass die angegebene Log-Datei nunmehr die erste wird.
Beispiel:
PURGE MASTER LOGS TO ’mysql-bin.010’
Dieser Befehl macht nichts und schl¨agt mit einer Fehlermel-
dung fehl, wenn Sie einen aktiven Slave haben, der momentan
eine der Log-Dateien liest, die Sie zu l¨oschen versuchen. Wenn
Sie jedoch einen schlafenden Slave haben und gerade eine der
Log-Dateien l¨oschen, die dieser Slave lesen will, wird der Slave
nicht in der Lage sein zu replizieren, sobald er wach wird.
Der Befehl kann sicher verwendet werden, w¨ahrend Slaves
replizieren - Sie brauchen diese also nicht anhalten.
Zuerst m¨ussen Sie alle Slaves mit SHOW SLAVE STATUS
¨uberpr ¨ufen, um festzustellen, an welcher Log-Datei sie gerade
sind, dann eine Auflistung aller Log-Dateien auf dem Master
mit SHOW MASTER LOGS machen, die fr¨uheste davon heraus-
finden, an der noch ein Slave arbeitet (wenn alle Slaves aktuell
sind, ist das die letzte Log-Datei auf der Liste), dann alle Logs,
die Sie l¨oschen wollen, sichern (optional), und schließlich bis
zum Ziel-Log l¨oschen.
5.10.7 Replikation - H¨aufig gestellte Fragen
Frage: Warum sehe ich manchmal mehr als eine Binlog_Dump-Thread auf dem Master,
nachdem ich den Slave neu gestartet habe?
Antwort: Binlog_Dump ist ein kontinuierlicher Prozess, der folgendermaßen vom Server
gehandhabt wird:
• Zu den Aktualisierungen aufschließen.
• Sobald keine Aktualisierungen mehr ¨ubrig sind, in den Zustand pThread_cond_wait()
gehen, durch den er entweder durch eine Aktualisierung oder einen Kill erweckt werden
kann.
• Beim Aufwachen den Grund daf¨ur pr¨ufen. Wenn er nicht sterben soll, mit der Binlog_
dump-Schleife weitermachen.
• Wenn ein schwerer Fehler auftritt, wenn zum Beispiel ein toter Client entdeckt wird,
die Schleife beenden.
Wenn der Slave-Thread also beim Slave anh¨alt, bemerkt das der entsprechende Binlog_
Dump-Thread auf dem Master solange nicht, bis zumindest eine Aktualisierung (oder ein
Kill) auf den Master durchgef¨uhrt wird, was ben¨otigt wird, um ihn von pThread_cond_
wait() aufzuwecken. In der Zwischenzeit k¨onnte der Slave bereits eine weitere Verbindung
ge¨offnet haben, die in einem weiteren Binlog_Dump-Thread resultiert.
Das beschriebene Problem sollten in Versionen ab 3.23.26 nicht auftreten. In Version 3.23.26
kam server-id f¨ur jeden Replikationsserver hinzu, und nun werden alle alten Zombie-
Kommentare zu diesen Handbüchern