logs log files disable binarios automatically mysql binary-log

log - ¿Es seguro eliminar los registros binarios de MySQL rotados?



mysql purge binary logs automatically (4)

Finalmente encontré la respuesta en el sitio web de MySQL. En caso de que alguien necesite esta información:

Antes de MySQL 5.0.60, PURGE BINARY LOGS TO y PURGE BINARY LOGS ANTES no se comportaban de la misma manera (y ninguno se comportaba correctamente) cuando los archivos de registro binarios enumerados en el archivo .index se habían eliminado del sistema por algún otro medio (como usar rm en Linux). A partir de MySQL 5.0.60, ambas variantes de la declaración fallan con un error en tales casos. (Error # 18199, Error # 18453) Para manejar dichos errores, edite el archivo .index (que es un archivo de texto simple) manualmente para asegurarse de que solo se enumeran los archivos de registro binarios que están realmente presentes, luego ejecute nuevamente los PURGAR REGISTROS BINARIOS declaración que falló

Esto significa que debo editar el archivo .index manualmente y todo estará bien. Lo que es interesante es que el archivo .index es un archivo de texto regular. Ni siquiera me di cuenta de eso hasta ahora.

Tengo un servidor MySQL con registro binario activo. Una vez al día, el archivo de registros se "gira", es decir, MySQL parece dejar de escribir y crea un nuevo archivo de registro. Por ejemplo, actualmente tengo estos archivos en / var / lib / mysql

-rw-rw---- 1 mysql mysql 10485760 Jun 7 09:26 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Jun 7 09:26 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Jun 2 15:20 ib_logfile1 -rw-rw---- 1 mysql mysql 1916844 Jun 6 09:20 mybinlog.000004 -rw-rw---- 1 mysql mysql 61112500 Jun 7 09:26 mybinlog.000005 -rw-rw---- 1 mysql mysql 15609789 Jun 7 13:57 mybinlog.000006 -rw-rw---- 1 mysql mysql 54 Jun 7 09:26 mybinlog.index

y mybinlog.000006 está creciendo.

¿Puedo simplemente tomar mybinlog.000004 y mybinlog.000005, comprimirlos y transferirlos a otro servidor, o debo hacer algo más antes?

¿Qué información se almacena en mybinlog.index? ¿Sólo la información sobre el último registro binario?

ACTUALIZACIÓN: Entiendo que puedo eliminar los registros con PURGE BINARY LOGS que actualiza el archivo mybinlog.index. Sin embargo, debo transferir los registros a otra computadora antes de eliminarlos (pruebo si la copia de seguridad es válida en otra máquina). Para reducir el tamaño de transferencia, deseo bzip2 los archivos. ¿Qué hará PURGAR LOS REGISTROS BINARIOS si los archivos de registro ya no están "allí"?


Puede eliminar los registros binarios antiguos. En lugar de eliminarlos directamente, es más seguro utilizar el registro de MySQL PURGE BINARY LOGS que también actualiza su archivo mybinlog.index . Este archivo almacena los nombres de archivo que se han utilizado para el registro binario, consulte

http://dev.mysql.com/doc/refman/5.0/en/purge-binary-logs.html

Además, puede configurar su servidor MySQL para eliminar automáticamente los registros binarios antiguos. Establezca las variables max_binlog_size y expire_logs_days en la configuración de su servidor a los valores apropiados.

Los archivos ibdata y ib_logfile no tienen nada que ver con el registro binario. Son utilizados por el motor de almacenamiento innodb. No se deje confundir por el hecho de que no parecen crecer: si tiene innodb-tables en su servidor, estos archivos son importantes y eliminarlos puede provocar la pérdida de datos. Puedes leer más sobre InnoDB en los documentos:

http://dev.mysql.com/doc/refman/5.0/en/innodb-configuration.html


mysql-bin.index generalmente lleva todos los archivos .bin. Si ha eliminado algunos archivos, por favor, edite el .index para reflejar cuáles son todos los archivos disponibles. Si has eliminado todos los archivos .bin, elimina el archivo .index vacío. Esto solucionará tu problema.


mysql> PURGE BINARY LOGS BEFORE NOW() - INTERVAL 3 DAY;

¡ELIMINE TODOS los archivos bin antes de 3 días!

o

PURGE MASTER LOGS BEFORE ''2010-10-08 00:00:00'';