Cómo cambiar el tiempo de rotación de los logs binarios en MySQL 8

Artículos Guías Manuales Sistemas Linux Windows Binario 0

En MySQL 8, la configuración del tiempo de rotación de los logs binarios se controla mediante la variable binlog_expire_logs_seconds. Este parámetro define el tiempo, en segundos, que los bin logs (archivos de registro binario) permanecen almacenados antes de ser eliminados automáticamente.

A continuación, se detalla cómo cambiar esta configuración entrando primero dentro de la CLI de MySql:

mysql -u root -p

1. Verificar el valor actual de caducidad

Conéctate al servidor MySQL y ejecuta el siguiente comando para consultar el valor actual de binlog_expire_logs_seconds:

SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

Ejemplo de salida:

+----------------------------+---------+
| Variable_name | Value |
+----------------------------+---------+
| binlog_expire_logs_seconds | 2592000 |
+----------------------------+---------+

En este caso, el valor predeterminado es 2592000 segundos (equivalente a 30 días).

2. Cambiar el valor de caducidad temporalmente

Si deseas cambiar el valor temporalmente (sin modificar la configuración permanente), utiliza el siguiente comando:

SET GLOBAL binlog_expire_logs_seconds = 1296000;

Esto establece la caducidad en 1296000 segundos (15 días).

Ejemplo de salida:

Query OK, 0 rows affected (0.00 sec)

3. Verificar el cambio

Confirma que el nuevo valor se ha aplicado correctamente ejecutando de nuevo:

SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

Ejemplo de salida:

+----------------------------+---------+
| Variable_name | Value |
+----------------------------+---------+
| binlog_expire_logs_seconds | 1296000 |
+----------------------------+---------+

4. Configurar el cambio de manera permanente

Para que el cambio persista después de reiniciar el servidor, debes modificar el archivo de configuración de MySQL. Sigue estos pasos:

  1. Abre el archivo de configuración de MySQL:
    En la mayoría de los sistemas Linux, el archivo se encuentra en:

    /etc/mysql/mysql.conf.d/mysqld.cnf
  2. Agrega o edita la opción correspondiente en la sección [mysqld]:
    Añade la siguiente línea:

    binlog_expire_logs_seconds=1296000
  3. Guarda los cambios y reinicia MySQL:
    Ejecuta el siguiente comando para reiniciar el servicio:

    sudo service mysql restart
  4. Verifica el valor actualizado:
    Después del reinicio, confirma que el nuevo valor persista ejecutando:

    SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

Consideraciones finales

  • Cambiar la caducidad de los archivos binarios puede ayudar a gestionar mejor el uso de disco.
  • Ajusta este valor según tus necesidades, considerando el balance entre la disponibilidad de registros para replicación y el espacio de almacenamiento.
  • En sistemas de producción, asegúrate de realizar este cambio fuera de horas de mayor actividad para evitar posibles interrupciones.