Por favor, não os apague apenas no SO.
Você precisa deixar o mysqld fazer isso por você. Aqui está como o mysqld gerencia:
O arquivo mysql-bin.[index]
mantém uma lista de todos os logs binários que o mysqld gerou e girou automaticamente. Os mecanismos para limpar os binlogs em conjunto com mysql-bin.[index]
são:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
Isso limpará todos os logs binários antes do log do bin ou do carimbo de data / hora que você acabou de especificar.
Por exemplo, se você executar
PURGE BINARY LOGS TO 'mysql-bin.000223';
isso apagará todos os logs binários antes mysql-bin.000223
.
Se você correr
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;
isso apagará todos os logs binários antes da meia-noite, 3 dias atrás.
Se você deseja que o binlog seja rotacionado automaticamente e fique por três dias, basta definir o seguinte:
mysql> SET GLOBAL expire_logs_days = 3;
adicione isso a /etc/my.cnf
[mysqld]
expire_logs_days=3
e o mysqld irá deletá-los para você
MOSTRAR ESTADO DO ESCRAVO \ G
Isso é crítico. Ao executar SHOW SLAVE STATUS\G
, você verá dois logs binários do Master:
Master_Log_File
Relay_Master_Log_File
Quando a replicação tem pouco ou nenhum atraso, eles geralmente têm o mesmo valor. Quando há muito atraso na replicação, esses valores são diferentes. Apenas para simplificar, escolha o que Relay_Master_Log_File
for e volte ao Mestre e execute
PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';
Dessa forma, a replicação não é interrompida.
[mysqld] expire_logs_days=3
(e você deve incluir a[mysqld]
seção