Cargando...

Continuar una replicación MySQL

Cuando una replicación de MySQL se detiene, suele deberse a un error al ejecutar un query en el servidor de replica.

Casi siempre, esto es por que el query viola una llave de integridad o por que la estructura entre las tablas con respecto al servidor maestro no son iguales.

Para validar lo que sucede hay que entrar al servidor de replicación, y desde la consola de Mysql consultar el estatus:

SHOW SLAVE STATUS\G;

De la información mostrada la que nos importa es la siguiente:

Master_Log_File: mysql-bin.002956 Read_Master_Log_Pos: 32267674 Relay_Log_File: mysqld-relay-bin.001557 Relay_Log_Pos: 86753169 Relay_Master_Log_File: mysql-bin.002955 Slave_IO_Running: Yes Slave_SQL_Running: Yes Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 86753023 Seconds_Behind_Master: 2907

En ella se muestra lo relativo al log desde el que se hace la replicación, la posición actual (que en cada consulta debería seguir avanzando), el error que se hubiera presentado y el tiempo de retraso con que se ejecutó el último query en relación al servidor principal.

Si el error no es de mayor importancia para el respaldo, se puede 'brincar' ese query y continuar con la replicación, para lo cual hacemos:

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;

Que equivale a decirle al servidor que omita tantos querys como se necesiten e inicie la replicación.

Obviado es, que en caso de que se hubiera corregido el problema que originó que el query fallará, sólo será necesario volver a iniciar la replicación.