2012-02-09 17 views
21
replicación

MySQL se rompió con ser el último errorMySQL replicación de error 'No se puede 'ALTER' una mesa de registro si el registro está habilitado' en consulta

Last_Errno: 1580 Last_Error: Error 'You cannot 'ALTER' a log table if logging is enabled' on query. Default database: 'mysql'.

parece que esto es culpa de funcionamiento mysql_fix_privilege_tables para la versión 5.1. 61 Encontré algunos informes de errores pero no encontré cómo remediar la situación una vez que la actualización ya se realizó en el maestro.

¿Alguna idea?

Refs: http://bugs.mysql.com/bug.php?id=39133 http://bugs.mysql.com/bug.php?id=43579 http://bugs.mysql.com/bug.php?id=46638

+0

Esto suena como de hecho este error para mí: [MySQL el bug # 43579 ] (http://bugs.mysql.com/bug.php?id=43579) – gertvdijk

Respuesta

38

Parece voy a responder a mi propia pregunta. Intentar modificar una tabla de registro al iniciar sesión habilitado crea el error. Realmente no entiendo cómo el MASTER podría ejecutar esa consulta ya que tiene el mismo registro en su lugar y, si lo hizo, ¿por qué el SLAVE no puede hacer lo mismo? Estaré encantado de leer explicaciones pero, por ahora, centrémonos en la solución.

Para ver el error que se rompió la replicación ejecutar

SHOW SLAVE STATUS\G and you will see the trouble making query

Ahora se puede detener el esclavo

STOP SLAVE;

Desactivar los registros correspondientes (no copiar + pegar esto, pero comprobar su propia configuración en primer lugar):

SET GLOBAL slow_query_log = 'OFF';

Reiniciar el esclavo

START SLAVE;

Ver errores se muestran en

SHOW SLAVE STATUS\G

y habilitar los registros pertinentes de nuevo:

SET GLOBAL slow_query_log = 'ON';

Vamos a saber si esto ayudó.

+8

no es necesario deshabilitar sql_log_bin. – kenn

+1

Funcionó muy bien, gracias. –

+1

La desactivación de sql_log_bin es innecesaria y mucho más peligrosa que la desactivación temporal de slow_query_log. La respuesta de Daniel Caillibaud es más segura. – richardkmiller

22

que tienen una replicación maestro-maestro, por lo que no se puede dejar de registros binarios en esclavo, sino

STOP SLAVE; 
SET GLOBAL slow_query_log = "OFF"; 
START SLAVE; 
SET GLOBAL slow_query_log = "ON"; 

resuelto mi pb

+0

Curioso, pero ¿por qué volver a habilitar el slow_query_log en el esclavo si se sabe que causa el problema? ¿Qué valor tiene tener eso activado en el esclavo cuando ya está habilitado en el maestro? – jwg2s

+0

@ jwg2s el esclavo generalmente tendrá diferentes consultas de solo lectura ejecutadas en él (a menos que sea exclusivamente para la copia de seguridad), por lo que querrá saber si alguno de ellos también es lento –

Cuestiones relacionadas