TIL Today I Learned...


Limpiando logs binarios de MySQL

Posted on July 26, 2017

El log binario es un log que utiliza la sincronización de MySQL/MariaDB para guardar los cambios que hay tanto en la estructura de la base de datos como en los datos de la misma. La idea es que mediante ese log los diferentes componentes de la sincronización se ponen de acuerdo en los cambios que hay. Hay mucha más información en este enlace: https://mariadb.com/kb/en/mariadb/binary-log/ .

MySQL

[MySQL logo]

Cómo limpiar los logs binarios.

El log binario se va guardando indefinidamente cuando la variable expire_logs_days no está definida. El problema es que con el paso del tiempo estos logs van ocupando un espacio que es casi inútil debido a que en el momento en el que rotan estos logs no van a ser utilizados (salvo en caso de desastre).

En esta magnífica entrada de StackOverflow se explica cómo utilizar el comando PURGE BINARY LOGS

Yo lo que he utilizado ha sido

PURGE BINARY LOGS TO mysql-bin.000223;

Previamente había listado todos los logs binarios que había (están en la carpeta raíz de MySQL/MariaDB). He borrado todos los logs de años anteriores (había desde 2012), pero lo más importante es que no borres el log binario que se está utilizando actualmente (para saber cuál se está utilizando hay que utilizar el comando SHOW MASTER STATUS)