
Estou usando o MySQL Community Server 5.7.37-log. meu mysqld.cnf está abaixo:
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
quando verifico meus registros, eles continuam crescendo, embora eu mencione que expirarão em 1 dia. usando expire_logs_days.
Com esta configuração acima, posso esperar que os logs sejam removidos automaticamente ou devo fazer isso manualmente novamente? Vejo alguns formulários dizendo
PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 DAY;
Mas não entendo o sentido de executar manualmente a instrução acima quando já definimos a configuração.
Por favor, ajude-me a entender o mecanismo de expiração dos logs bin. Como usei a expiração após 1 dia, o tamanho do bin.00001 e bin.0002 etc. será reduzido todos os dias? ou como posso identificar se os logs estão realmente expirando?
anexando captura de tela dos meus logs de bin gerados.
Responder1
Não há cronômetro que execute e exclua logs após um dia. A exclusão do log é acionada por eventos de liberação de log. Então é aí que um novo binlog é gerado. Se demorar muito em nosso banco de dados e os logs não forem liberados diariamente, você poderá definir max-binlog-size para um valor mais baixo. Outra boa opção seria sempre liberar os logs como parte de sua estratégia de backup.