Replicação do MySQL quebrada como log binário não em ordem cronológica

2

Olhando para um trecho do log binário, pode-se ver que essas duas declarações são escritas para o log fora de ordem cronologicamente:

#160628 17:32:46 server id 2220  end_log_pos 64812204   Query   thread_id=157061        exec_time=0     error_code=0
SET TIMESTAMP=1467153166/*!*/;
UPDATE 'table' SET 'field' = "a";
/*!*/;
# at 64812204
--
#160628 17:32:36 server id 2220  end_log_pos 64895850   Query   thread_id=157062        exec_time=0     error_code=0
SET TIMESTAMP=1467153156/*!*/;
UPDATE 'table' SET 'field' = "b";
/*!*/;
# at 64895850

Não é possível descobrir como destacar o bloco de códigos, mas as partes importantes são:

first statement - end_log_pos 64812204, SET TIMESTAMP=1467153166

second statement - end_log_pos 64895850, SET TIMESTAMP=1467153156

Isso fez com que o mestre e o escravo dessincronizassem, pois o mestre executou a primeira instrução por último, enquanto o escravo executou a segunda declaração por último.

Alguém pode me ajudar a descobrir o motivo disso? Notei que todas as instruções com o thread_id 157062 foram executadas primeiro, mas gravadas no log depois daquelas com o thread_id 157061.

A versão do Mysql é 5.5.

Obrigado por qualquer ajuda.

    
por alison_feik 07.07.2016 / 10:04

0 respostas