Ti preghiamo di non eliminarli nel sistema operativo.
Devi lasciare che mysqld lo faccia per te. Ecco come lo gestisce mysqld:
Il file mysql-bin.[index]
mantiene un elenco di tutti i registri binari che mysqld ha generato e ruotato automaticamente. I meccanismi per ripulire i binlog in combinazione con mysql-bin.[index]
sono:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
Questi cancelleranno tutti i registri binari prima del binlog o del timestamp appena specificato.
Ad esempio, se corri
PURGE BINARY LOGS TO 'mysql-bin.000223';
questo cancellerà prima tutti i registri binari mysql-bin.000223
.
Se corri
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;
questo cancellerà tutti i registri binari prima di mezzanotte 3 giorni fa.
Se vuoi che il binlog venga ruotato automaticamente e mantenga 3 giorni, basta impostare questo:
mysql> SET GLOBAL expire_logs_days = 3;
quindi aggiungilo a /etc/my.cnf
[mysqld]
expire_logs_days=3
e mysqld li cancellerà per te
MOSTRA STATO SLAVE \ G
Questo è fondamentale. Quando esegui SHOW SLAVE STATUS\G
, vedrai due registri binari dal Master:
Master_Log_File
Relay_Master_Log_File
Quando la replica presenta un ritardo minimo o nullo, di solito hanno lo stesso valore. Quando c'è molto ritardo di replica, questi valori sono diversi. Giusto per renderlo semplice, scegli quello che Relay_Master_Log_File
è e torna dal Maestro ed esegui
PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';
In questo modo, la replica non viene interrotta.
[mysqld] expire_logs_days=3
[mysqld]