peterpan wrote:Das Master-Logfile (mysql-bin.nnnnnn) wächst recht schnell, weshalb ich die "max_binlog_size" auf "100M" gesetzt habe. Nun legt MySQL nach erreichen dieser Grenze brav ein neues File an.
Das ist auch Sinn der Sache. Das Binlog wird in Stücke von max_binlog_size zerteilt, damit man alte Stücke löschen kann.
Man kann das mit "PURGE MASTER LOGS BEFORE now() - INTERVAL 7 DAY" tun, wenn man etwa 7 Tage aufbewahren will, oder man setzt einfach "expire_log_days = 7" in der [mysqld]-Sektion der my.cnf, um diese Löschung automatisch zu bekommen.
Ich kann die "alten" Logs also nicht gefahrlos löschen, da meine Replikation sonst nicht mehr problemlos funktioniert.
Dein Slave könnte report-host und report-port konfiguriert haben. Dann könntest Du auf dem Master mit SHOW SLAVE HOSTS sehen, wo Deine Slaves stehen und welche Binlogs nicht mehr benötigt werden. Du kannst dann passende PURGE MASTER LOGS Statement absetzen.
Das Relay-Log (relay-bin.nnnnnn) auf dem selben Server verhält sich hingegen "normal".
Es wird max_relay_log_size gross, dann wird ein neues angefangen. Wenn der SQL_THREAD es abgearbeitet hat, wird es gelöscht. Das kann man durch relay_log_purge=0 abschalten.
Wenn Du "STOP SLAVE SQL_THREAD" machst, wird der IO_THREAD weiter Daten ins Relay Log pumpen, und das (die) Relay Logs werden weiter wachsen, bis das relay_log_space_limit erschöpft ist (oder Du den START SLAVE SQL_THREAD machst).
Starte ich MySQL neu, so wird von Datei "mysql-bin" eine neue Datei angelegt (es entstehen mehrere Dateien), die datei "relay-bin" wird hochgezählt und durch eine aktuelle Datei ersetzt (es bleibt immer bei einer Datei).
Eine neue Binlog-Datei wird angelegt, wenn Du FLUSH LOGS sendest, wenn der Server startet oder wenn max_binlog_size überschritten wird.
Ich möchte, daß für die "mysql-bin" Datei auch immer nur eine Datei angelegt wird und daß die alten Daten nach erreichen der 100M Grenze verworfen werden.
Diese Strategie ist falsch. Das Binlog wird immer weiter fortgeschrieben. Es kann gelöscht werden, wenn es nicht mehr gebraucht wird.
Binlogs werden nicht mehr gebraucht, wenn sie älter als ein Full Dump sind UND wenn kein Slave mehr dieses Binlog liest. Du kannst es dann löschen.
{quote]Hast jemand einen Tipp für mich, wie ich das hinbekomme?[/quote]
1. Verstehen was ein Binlog ist und wozu es verwendet wird.
2. Eine Strategie für Point In Time Recovery und Replikation haben.
3. Das Binlog dazu passend verwalten.