Qual é o método mais rápido para restaurar a replicação do MySQL?

1

Eu tenho um par de duplicação mestre-escravo do MySQL (5.1) e a replicação para o escravo falhou. Ele falhou porque o mestre ficou sem espaço em disco e os logs de retransmissão ficaram corrompidos. O mestre está agora de volta on-line e funcionando corretamente. Como há esse erro no log, o processo escravo não pode simplesmente ser reiniciado.

O servidor tem um único banco de dados InnoDB de 40GB e eu gostaria de saber qual é o método mais rápido para colocar o escravo de volta em sincronia para minimizar o tempo de inatividade.

    
por dwhere 02.03.2011 / 15:37

2 respostas

0

Você pode tentar o comando reset slave mysql para ignorar o arquivo de log atual. No entanto, você deve ter cuidado, pois isso pode resultar em perda / inconsistência de dados.

Acho que a maneira segura é reconstruir a replicação desde o início para garantir que você não tenha perda / inconsistência de dados.

Copiar o diretório de dados é muito mais rápido do que exportar o banco de dados usando mysqldump .

Primeiro, bloqueie as tabelas usando:

> FLUSH TABLES WITH READ LOCK;

Em seguida, copie o diretório de dados. Então, o tempo de inatividade será o tempo de copiar o diretório de dados. Para um guia mais completo, dê uma olhada em this . Você precisa copiar o diretório de dados em vez de usar mysqldump . Você precisa corrigir as permissões depois de copiar os arquivos / pastas de dados no servidor escravo.

    
por 02.03.2011 / 15:51
1

Se você quiser começar tudo de novo no escravo (que eu acho que é mais seguro), use myqldump com a opção --master-data. Seu dump agora conterá CHANGE MASTER TO MASTER_LOG_FILE e MASTER_LOG_POS. Carregue o despejo no seu escravo e é bom ir.

    
por 10.03.2011 / 08:26