iTank ideas

Desactivar el Log binario en MySQL

Si algún día te encuentras toneladas de ficheros binary.* colapsando el disco desde el directorio de almacenamiento de bases de datos de tu mySQL  es que ya te has encontrado con su log binario.

Esencialmente el log binario de MySQL registra el histórico de operaciones SQL que alteran los datos (como INSERT, DELETE, UPDATE….), lo que excluye las consultas (SELECT). Esto se puede usar en replicación maestro-esclavo y maestro-maestro, reconstrucciones de la base de datos desde el último backup, hacer recovery a un determinado punto y hacer copias de seguridad incrementales.

En contraprestación obtendrás más consumo de CPU y acceso a disco lo que supone una afectación teórica del 1% en rendimiento y también mayor consumo de espacio en disco.

De forma predeterminada el binary log está habilitado y por lo tanto, es una opción a tener en cuenta especialmente en bases de datos con muchas operaciones de cambio.

Si tus bases de datos son bastante estáticas y haces copia de seguridad diaria o semanal, quizás quieras descativarlo así:

Purga los ficheros de log acumulados:

$sudo mysql -p
mysql> PURGE BINARY LOGS BEFORE NOW();
Query OK, 0 rows affected (0.00 sec)

Edita el fichero de configuración de MySQL

$ sudo nano /etc/mysql/my.cnf

Añade la directiva

[mysqld]
  disable_log_bin

A continuación reinicia el servicio MySQL

service mysql restart

Así habrás recuperado el espacio y rendimiento. Recuerda que resulta imprescindible automatizar el backup para compensar la desactivación de esta funcionalidad. Mi Raspberry PI con unidad de disco microSD se colapsó recientemente y como tengo automatizado el backup, preferí desactivar el log binario.

Más info en blog.elhacker.net