The Information Systems and Computer Applications examination covers material that is usually taught in an introductory college-level business information systems course.

Cambio en los Senconds_Behind_Master en MySQL 5.6 by Jordi Prats

En los cambios de MySQL 5.5 a MySQL 5.6 podemos encontrar el siguiente comentario que puede sonar raro:

Important Change: Replication: Formerly, the value of the Seconds_Behind_Master column in the output of SHOW SLAVE STATUS was always set to NULL whenever the SQL thread or the I/O thread was stopped. Now, this column is set to NULL only if the SQL thread is not running, or if the I/O thread is not running following a check to determine whether or not the SQL thread has processed all of the relay log. (If the SQL thread has finished processing and the I/O thread is running, Seconds_Behind_Master is 0.) (Bug #12946333)

Suena raro que se diferencie entre “stopped” y “not running”, pero tiene su explicación.

 

Podemos encontrarnos que los Seconds_Behind_Master vayan creciendo linealmente:

SBM creciendo linealmenteSBM creciendo linealmente

Revisando los logs nos encontraremos con el siguiente error:

121122 17:20:41 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL
thread with "SLAVE START". We stopped at log 'binlog.000050' position 877769220

Lo que esta pasando es que por el bug anteriormente comentado (#12946333) el thread esta corriendo pero no esta actualizando, por lo que como que no esta “stopped” el Seconds_Behind_Master no esta a NULL.

Por lo que lo que nos encontramos en versiones de MySQL 5.5 y anteriores es que aparece un error en los camposLast_Error y Last_Errno. Por suerte no ocurre con todos los errores de replicación sino algunos.

Por lo tanto, para comprobar si se ha roto la replicación en MySQL 5.5 en lugar de mirar si elSeconds_Behind_Master esta a NULL, deberemos mirar si el Last_Errno no esta a 0

Tags: 

Relacionados

 

Enhanced by Zemanta

Comments are closed.