Большой объем binlog файлов в MySQL?

Почему размеры binlog такие велики на сервере с базой данных MySQL размером 2.5 ГБ, установленной на Debian? Можно ли сократить размер binlog, уменьшив время их жизни до одного дня?
  • 15 июля 2024 г. 11:22
Ответы на вопрос 2
Размеры binlog файлов в MySQL могут быть большими из-за нескольких причин:

1. Высокая активность базы данных: Если база данных имеет высокий уровень транзакций, binlog файлы могут быстро нарастать из-за большого количества записей изменений данных.

2. Длительное хранение binlog файлов: Если высокий уровень активности сочетается с длительным хранением binlog файлов, их размеры могут значительно увеличиться.

Для уменьшения размеров binlog файлов и уменьшения их времени жизни до одного дня, вы можете изменить настройки параметра expire_logs_days в файле my.cnf:

expire_logs_days = 1

Этот параметр устанавливает количество дней, после которых устаревшие binlog файлы будут автоматически удалены. Установка значения 1 гарантирует, что binlog файлы будут храниться только один день.

Также важно проверить, что в базе данных не включено логирование слишком подробной информации, которая необходима. Например, включение логирования всех запросов может привести к увеличению размеров binlog файлов. 

Если после внесения изменений размеры binlog файлов остаются большими, возможно стоит провести анализ активности базы данных и оптимизировать запросы для более эффективной работы с данными.
Бинарные логи вот зачем нужны: https://dev.mysql.com/doc/refman/8.0/en/binary-log.html 

Двоичный журнал содержит «события», описывающие изменения базы данных, такие как операции создания таблиц или изменения данных таблицы. Он также содержит события для операторов, которые потенциально могли внести изменения (например, DELETE, который не соответствует ни одной строке), если не используется журналирование на основе строк. Двоичный журнал также содержит информацию о том, сколько времени потребовалось каждому оператору для обновления данных.


Собственно, посмотрите внутрь, что фиксируется в логах.

При необходимости удалите, например, так - через mysql :
PURGE BINARY LOGS BEFORE '2024-02-21 01:00:00';
Похожие вопросы