Procedimiento para desactivar los registros binarios en las bases de datos MariaDB y MySQL.

Hace unos días, Geekflare no estaba disponible, y la razón era simple – no quedaba espacio en el dispositivo. Tuve cientos de alertas y correos electrónicos de la audiencia acerca de que el sitio web estaba caído, pero yo estaba de viaje, así que no pude tomar medidas a tiempo.

Esto quedó registrado en los logs de Google Cloud.

Feb 13 15:58:35 geekflare snapd<x>[1308]</x>: daemon.go:379: started snapd/2.37.1 (series 16; classic) ubuntu/18.04 (amd64) linux/4.15.0-1027-gcp.
Feb 13 15:58:35 geekflare snapd<x>[1308]</x>: main.go:123: system does not fully support snapd: mkdir /tmp/sanity-mountpoint-464926152: no space left on device
Feb 13 15:58:35 geekflare systemd[1]: Iniciado el demonio Snappy.

Esto fue una sorpresa para mí ya que Geekflare es sólo un simple blog y no almacena ni procesa grandes datos. Así que empecé a investigar y encontré que /var/log/mysql estaba ocupando ~50% del almacenamiento total.

root@geekflare:/var/log# du -sh mysql
9.4G mysql
root@geekflare:/var/log#

Y, después de listar los archivos

-rw-rw---- 1 mysql adm 104860436 Feb 10 19:05 mariadb-bin.000105
-rw-rw---- 1 mysql adm 104869270 Feb 10 22:12 mariadb-bin.000106
-rw-rw---- 1 mysql adm 104868195 Feb 11 01:41 mariadb-bin.000107
-rw-rw---- 1 mysql adm 104859088 Feb 11 04:44 mariadb-bin.000108
-rw-rw---- 1 mysql adm 104862187 Feb 11 07:22 mariadb-bin.000109
-rw-rw---- 1 mysql adm 104860386 Feb 11 09:25 mariadb-bin.000110
-rw-rw---- 1 mysql adm 104867622 Feb 11 11:22 mariadb-bin.000111
-rw-rw---- 1 mysql adm 104871043 Feb 11 13:18 mariadb-bin.000112
-rw-rw---- 1 mysql adm 104873816 Feb 11 15:07 mariadb-bin.000113
-rw-rw---- 1 mysql adm 104858814 Feb 11 17:09 mariadb-bin.000114
-rw-rw---- 1 mysql adm 104858302 Feb 11 19:18 mariadb-bin.000115
-rw-rw---- 1 mysql adm 104859019 Feb 11 21:33 mariadb-bin.000116
-rw-rw---- 1 mysql adm 104860830 Feb 12 00:05 mariadb-bin.000117
-rw-rw---- 1 mysql adm 3298 Feb 12 02:58 mariadb-bin.index
-rw-rw---- 1 mysql adm 104873697 Feb 12 02:58 mariadb-bin.000118
-rw-rw---- 1 mysql adm 104259584 13 feb 15:24 mariadb-bin.000119
-rw-rw---- 1 mysql adm 0 Feb 13 15:25 mariadb-bin.state
root@geekflare:/var/log/mysql#

Eran logs binarios.

Puede pensar en borrarlos para recuperar el sistema pero tenga en cuenta que se volverá a llenar. Así que la mejor manera de prevenir esto es instruir a MariaDB para que no haga logs. No tengo implementación de réplica por lo que está bien desactivar el registro binario.

Es una simple configuración de una línea.

Si utiliza MariaDB

  • Inicie sesión en el servidor donde se ejecuta MariaDB
  • Vaya a /etc/mysql/conf.d
  • Haga una copia de seguridad de mariadb.cnf
  • Añada lo siguiente en [mysqld] directiva
skip-log-bin
  • Guarde el archivo de configuración

En este momento, puede borrar esos archivos binarios de registro y reiniciar la base de datos.

Si utiliza MySQL

  • Inicie sesión en el servidor MySQL
  • Vaya a /etc/my.cnf.d/
  • Añada lo siguiente en el archivo mysql-server.cnf en <x>[mysqld]</x> directiva
skip-log-bin
  • Guarde el archivo y reinicie el servidor MySQL
service mysqld stop
service mysqld start

Ahora, puede borrar esos archivos binarios bajo /var/lib/mysql. Espero que esto le ayude.

Si usted está ejecutando una aplicación crítica, entonces usted también puede considerar ir para MySQL hosting gestionado que se ocupan de la optimización del rendimiento.