Будь ласка, не просто видаляйте їх в ОС.
Вам потрібно дозволити mysqld зробити це за вас. Ось як управляє mysqld:
У файлі mysql-bin.[index]
зберігається список усіх двійкових журналів, які mysqld генерував та автоматично обертав. Механізми очищення бінлогів спільно з mysql-bin.[index]
:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
Вони очистять усі бінарні журнали перед вказаним вами бінгом або часовою позначкою.
Наприклад, якщо ти біжиш
PURGE BINARY LOGS TO 'mysql-bin.000223';
це видалить усі бінарні журнали раніше mysql-bin.000223
.
Якщо ти біжиш
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;
це видалить усі бінарні журнали до півночі 3 дні тому.
Якщо ви хочете, щоб бінлог автоматично обертався та тривав 3 дні, просто встановіть це:
mysql> SET GLOBAL expire_logs_days = 3;
потім додайте це до /etc/my.cnf
[mysqld]
expire_logs_days=3
і mysqld видалить їх для вас
ПОКАЗНІТЬ СТАТУС РОБОТИ \ G
Це критично. Під час запуску SHOW SLAVE STATUS\G
ви побачите два двійкові журнали від Master:
Master_Log_File
Relay_Master_Log_File
Якщо реплікація має невеликий або зовсім відсутній відставання, вони зазвичай мають однакове значення. Коли затримка реплікації багато, ці значення відрізняються. Щоб зробити це просто, виберіть все, що Relay_Master_Log_File
є, і поверніться до Майстра та біжіть
PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';
Таким чином реплікація не переривається.
[mysqld] expire_logs_days=3
(і ви повинні включити[mysqld]
розділ