No los elimine solo en el sistema operativo.
Debe dejar que mysqld lo haga por usted. Así es como mysqld lo maneja:
El archivo mysql-bin.[index]
mantiene una lista de todos los registros binarios que mysqld ha generado y rotado automáticamente. Los mecanismos para limpiar los binlogs junto con mysql-bin.[index]
son:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
Esto borrará todos los registros binarios antes del binlog o la marca de tiempo que acaba de especificar.
Por ejemplo, si corres
PURGE BINARY LOGS TO 'mysql-bin.000223';
Esto borrará todos los registros binarios anteriores mysql-bin.000223
.
Si tu corres
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;
Esto borrará todos los registros binarios antes de la medianoche hace 3 días.
Si desea que binlog se elimine automáticamente y se mantenga durante 3 días, simplemente configure esto:
mysql> SET GLOBAL expire_logs_days = 3;
luego agregue esto a /etc/my.cnf
[mysqld]
expire_logs_days=3
y mysqld los borrará por ti
MOSTRAR ESTADO ESCLAVO \ G
Esto es critico. Cuando corras SHOW SLAVE STATUS\G
, verás dos registros binarios del Maestro:
Master_Log_File
Relay_Master_Log_File
Cuando la replicación tiene poco o ningún retraso, estos generalmente tienen el mismo valor. Cuando hay mucho retraso de replicación, estos valores son diferentes. Solo para hacerlo simple, elija lo que Relay_Master_Log_File
sea, y regrese al Maestro y ejecute
PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';
De esa manera, la replicación no se interrumpe.
[mysqld] expire_logs_days=3
(y debe incluir la[mysqld]
sección