systemadmin.es > DBA > Rotar logs de MySQL

Rotar logs de MySQL

Para evitar tener logs de MySQL intratables por su tamaño debemos rotarlos periódicamente. Vamos a ver como hacerlo sin tener que reiniciar el MySQL.

Para ello primero de todos debemos saber donde se encuentran los logs. Normalmente se encuentran en el datadir:

# ps -fea | grep [m]ysqld | sed 's/^.*datadir=//' | sed 's/ .*//'
/var/mysql/datadir

En ese directorio veremos los ficheros mysql.log y mysql-slow.log (en el caso que lo tengamos habilitado). Para realizar la rotación haremos lo siguiente:

# cd /var/mysql/datadir
# mv mysql.log mysql.$(date +%d%m%Y)
# mv mysql-slow.log mysql-slow.$(date +%d%m%Y)
# mysqladmin -u root -pcontrasena flush-logs

Una vez realizado el flush-logs se crearán los ficheros de log tal como los teniamos y se guardarán allí los nuevos mensajes, quedando los antiguos en el fichero renombrado con la fecha.

A continuación podemos comprimirlos para ahorrar espacio.

One comment to “Rotar logs de MySQL”

  1. Algo obligado también es si tienes binary-logs es un límite de crecimiento de los ficheros.

    Ojo: al hacer esto se rompe una de las características de esos logs que es evitar la pérdida de información, pero no hacerlo y permitir que el filesystem se lleva a una perdida de información segura.

    Sobre todo una buena política de backups por lo que yo se lo haría en completos una vez a la semana o més y el resto incrementales en función de los binary-logs generados.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>