почему журналы mysql bin не истекают, хотя срок действия был установлен

почему журналы mysql bin не истекают, хотя срок действия был установлен

Я использую MySQL Community Server 5.7.37-log. Мой mysqld.cnf выглядит следующим образом:

server_id = 11
log_bin = bin.log
log-bin-index = bin-log.index
binlog_format = row
max_binlog_size = 100M
socket = mysql.sock
expire_logs_days = 1

когда я проверяю свои журналы, они продолжают расти, хотя я указываю, что срок их действия истекает через 1 день. использую expire_logs_days.

С этой конфигурацией выше, могу ли я ожидать, что журналы будут удалены автоматически или мне снова следует сделать это вручную? Я вижу некоторые формы, говорящие, PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 DAY; но я не понимаю смысла в ручном запуске вышеуказанного оператора, когда мы уже установили конфигурацию.

Пожалуйста, помогите мне понять механизм истечения срока действия журналов bin. Поскольку я использовал истечение срока действия через 1 день, будет ли размер bin.00001 и bin.0002 и т. д. уменьшаться каждый день? Или как я могу определить, что журналы действительно истекают?

прилагаю скриншот сгенерированных мной журналов bin.

введите описание изображения здесь

решение1

Нет таймера, который запускает и удаляет журналы через день. Удаление журнала инициируется событиями очистки журнала. Так что это происходит, когда генерируется новый binlog. Если это занимает слишком много времени в нашей базе данных и журналы не очищаются ежедневно, вы можете установить max-binlog-size на меньшее значение. Другим хорошим вариантом было бы всегда очищать журналы как часть вашей стратегии резервного копирования.

Связанный контент