
Я использую 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 на меньшее значение. Другим хорошим вариантом было бы всегда очищать журналы как часть вашей стратегии резервного копирования.