MySQL: Borrado de ficheros binlog

Es un comportamiento habitual de MySQL que los registros de eventos (ficheros binlog.xxx) empiecen a ocupar bastante espacio sin control. En esta guía vamos a mostrar varios métodos para tener el uso de disco bajo control.

Estos ficheros son necesarios si queremos tener réplica en MySQL, pero en caso contrario podemos prescindir de ellos modificando estos parámetros en nuestro fichero de configuración my.ini.

# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
 
# binary logging format - mixed recommended
binlog_format=mixed

Recordar que esta configuración es la estándar cuando instalamos una base de datos MySQL nueva.

Para eliminar los ficheros binlog antiguos tenemos varias herramientas:

Listar todos los ficheros binlog

SHOW BINARY LOGS;

Eliminar ficheros binlog manualmente

PURGE BINARY LOGS TO 'mysql-bin.xxxxx'

Modificar el xxxxx por el número del fichero que queremos eliminar.

Eliminar ficheros binlog anteriores a una fecha

PURGE BINARY LOGS BEFORE '2022-07-03 13:00:00';

Modificar la fecha con la fecha de hoy para eliminar todos los registros.

Automatizar borrado de ficheros binlog

Por último, podemos modificar algunos parámetros de nuestra base de datos MySQL de modo que no se generen o se eliminen los ficheros automáticamente.

Desactivar los registros binlog

SET sql_log_bin = 0;

Con el comando show variables like ‘sql_log_bin’; podemos validar que el cambio se ha realizado correctamente.

Eliminar los registros binlog automáticamente

Para configurar el borrado automáticamente, debemos configurar varios parámetros.

SET GLOBAL binlog_expire_logs_auto_purge=ON;
SET GLOBAL binlog_expire_logs_seconds=3600;

El tiempo de expiración por defecto es de 2592000 segundos, lo que corresponde a 30 días. (30*24*60*60 segundos). En nuestro caso, lo vamos a cambiar a 1 hora.

Con el comando show variables like ‘binlog_expire_logs_auto_purge’; y show variables like ‘binlog_expire_logs_seconds’; podemos validar que el cambio se ha realizado correctamente.

Con todo esto ya tendremos controlado el consumo de disco de los ficheros binlog.

Dejame un comentario si te ha servido o si utilizas algun otro metodo.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.