2011-09-11 50 views
21

He intentado varios comandos (FLUSH LOGS, PURGE MASTER) pero ninguno elimina los archivos de registro (cuando se activaron previamente) o las tablas de registro (mysql/slow_log.CSV y mysql/general_log.CSV y sus homólogos .frm y .CSM) .En MySQL, ¿cómo puedo eliminar/vaciar/borrar todos los registros que no son necesarios?

SHOW BINARY LOGS devuelve "No está utilizando el registro binario".

Editar: He encontrado esta solución sencilla para borrar los registros de la tabla (pero aún no los registros de archivos mediante un comando de MySQL): Registros de

TRUNCATE mysql.general_log; 
TRUNCATE mysql.slow_log; 

Respuesta

24

FLUSH simplemente se cierra y vuelve a abrir los archivos de registro. Si los archivos de registro son grandes, no los reducirá. Si está en Linux, puede usar mv para cambiar el nombre de los archivos de registro mientras están en uso, y luego de FLUSH LOGS, sabe que MySQL está escribiendo en un archivo nuevo y pequeño, y puede eliminar los archivos grandes viejos.

Los registros binarios son diferentes. Para eliminar los binlogs viejos, use PURGE BINARY LOGS. Asegúrate de que tus esclavos (si los hay) aún no estén usando los registros binarios. Es decir, ejecute SHOW SLAVE STATUS para ver qué archivo binlog están trabajando y no purgue ese archivo o archivos posteriores.

También tenga en cuenta que los binlogs son útiles para la recuperación puntual en caso de que necesite restaurar a partir de copias de seguridad y luego vuelva a aplicar binlogs para actualizar la base de datos. Si necesita utilizar binlogs de esta manera, no purgue los binlogs que se han escrito desde su última copia de seguridad.

+0

¿Y para ventanas? – pollux1er

+4

@ pollux1er, yo no uso Windows, lo siento. –

+0

Solo tuve que reiniciar mysql después de los comandos 'mv' y' rm', usando 'sudo service mysql restart' y luego para asegurarme de que mysql volviera a funcionar usando' sudo service mysql status' – dazito

0

Parece registro binario no está habilitada en el servidor .Y supongo que deseas eliminar los archivos de registro antiguos que se usaron/crearon en el momento en que se habilitó el registro binario. puede eliminarlos manualmente usando el comando 'rm' si lo desea. si desea habilitar el registro binario, puede hacer lo mismo actualizando el archivo de configuaración (pero necesita reiniciar el servidor si ya se está ejecutando). Puede consultar los enlaces a continuación. http://dev.mysql.com/doc/refman/5.0/en/replication-options-binary-log.html#option_mysqld_log-bin http://dev.mysql.com/doc/refman/5.0/en/replication-options-binary-log.html#sysvar_log_bin

Cuestiones relacionadas