¿Por qué los registros de bin de MySQL no caducan aunque se haya establecido la caducidad?

¿Por qué los registros de bin de MySQL no caducan aunque se haya establecido la caducidad?

Estoy usando el servidor comunitario MySQL de registro 5.7.37. mi mysqld.cnf se ve a continuación:

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

Cuando reviso mis registros, siguen creciendo, aunque menciono que caducan en 1 día. usando expire_logs_days.

Con esta configuración anterior, ¿puedo esperar que los registros se eliminen automáticamente o debería hacerlo nuevamente manualmente? Veo algunos formularios que dicen PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 DAY; Pero no entiendo el sentido de ejecutar manualmente la declaración anterior cuando ya configuramos la configuración.

Ayúdenme a comprender el mecanismo de caducidad de los registros bin. Como utilicé la caducidad después de 1 día, ¿se reducirá el tamaño de bin.00001 y bin.0002, etc., todos los días? ¿O cómo puedo identificar que los registros realmente están caducando?

Adjunto captura de pantalla de mis registros bin generados.

ingrese la descripción de la imagen aquí

Respuesta1

No hay ningún temporizador que se ejecute y elimine registros después de un día. La eliminación de registros se activa mediante eventos de vaciado de registros. Entonces es cuando se genera un nuevo binlog. Si nuestra base de datos tarda demasiado y los registros no se vacían diariamente, puede establecer max-binlog-size en un valor más bajo. Otra buena opción sería vaciar siempre los registros como parte de su estrategia de respaldo.

información relacionada