В один прекрасный момент мониторинг zabbix прислал оповещение о том, что на одном из серверов заканчивается место на диске. Просмотр занятого места быстро выявил виновника события — бинарные логи mysql-bin.00000, mysql-bin.00001 и так далее в папке /var/lib/mysql. Стал разбираться, что это за файлы и зачем они нужны.
Разбираться громко сказано. Я и раньше знал, что это бинарные логи базы. Для одной из баз на сервере была настроена репликация, для этого указан бинарный лог для конкретной базы. База маленькая, логи росли очень медленно. Проблема появилась только через 1.5 года. Я не стал сильно заморачиваться с этой темой, а просто решил ограничить максимальный размер файла бинарного лога (500мб) и время его хранения (3 дня). Для этого добавляем в файл конфигурации mysql /etc/my.cnf следующие параметры:
max_binlog_size= 500M expire_logs_days = 3
Добавляются в секцию [mysqld]. После этого mysql, или в моем случае mariadb надо перезапустить:
# systemctl restart mariadb
После перезапуска база сама почистит лог и уменьшит размер файлов mysql-bin, лишние при этом будут просто удалены. Если у вас нет репликации, то создание бинарных логов можно отключить, удалив все параметры, которые за них отвечают. У меня, к примеру, это:
log-bin = /var/lib/mysql/mysql-bin binlog-do-db = database
После этого перезапускаем базу. При ограничении размера и времени хранения бинарного лога, рекомендую настроить мониторинг mysql репликации, чтобы оперативно решать проблемы, которые возникают во время работы репликации. А они возникают и не так уж и редко.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.