22 May 2015

Continuar una replicación MySQL

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 tabla Variable Array no asignada>
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.

Artículos relacionados