Nosso MySQL Slave está com um arquivo de relé corrompido no escravo

1

Nossa unidade de disco do Servidor Escravo ficou cheia, a replicação parou, então liberamos espaço e iniciamos a replicação novamente. Bem, tudo foi bom até que nos deparamos com um arquivo de bin relay corrompido no slave (usava mysqllogbin para garantir).

O que fazemos? Podemos remover o arquivo bin corrompido e reiniciar, esperando que ele reconstrua esse arquivo?

Pouco perdido sobre o que fazer, qualquer ajuda seria ótima.

Estamos executando 5.1, temos um mestre e um escravo.

Eu posso estar perdendo informações, ou não sendo claro o suficiente, se assim for, deixe-me saber e eu posso preenchê-lo.

    
por 3 revs, 2 users 67%anon 12.05.2009 / 12:49

2 respostas

3
SHOW SLAVE STATUS\G

Registre os valores mostrados para Relay_Master_Log_File e Exec_Master_Log_Pos , que mostram a última posição dos logs binários do mestre que foram executados com êxito.

Use CHANGE MASTER para fazer com que o escravo copie o log binário a partir desse ponto novamente, substituindo os logs de relay por novos:

STOP SLAVE;
CHANGE MASTER TO 
  master_log_file='<Relay_Master_Log_File>', 
  master_log_pos=<Exec_Master_Log_Pos>;
  -- replace those two tags with the values you recorded earlier
START SLAVE;
    
por 12.05.2009 / 11:45
1

Você pode tentar pular 1 registro se estiver corrompido. Você pode fazer isso fazendo:

set global sql_slave_skip_counter=1; start slave;

faça

show slave status\G

e veja se está ok.

Você pode repetir isso algumas vezes até que ele comece a se replicar corretamente.

Se, por outro lado, você acha que perdeu muitos dados e os escravos estão fora de sincronia, então você pode fazer um novo mysqldump do mestre para ressincronizá-los.

Por fim, o maatkit tem uma ferramenta de sincronização que fará uma soma de verificação nas duas tabelas e tentará sincronizá-las para você.

    
por 30.05.2009 / 11:11

Tags