software mysql:alguma sugestão para supervisionar meu servidor de replicação mysql?
-
09-06-2019 - |
Pergunta
Tive dificuldade em configurar meu servidor de replicação.Existe algum programa (OS X, Win, Linux ou php sem problemas) que me permita monitorar e resolver problemas de replicação?(aliás, para aqueles -uhm- que seguem, eu já estive nesse assunto aqui, aqui, aqui e aqui.Ou estou fazendo isso da maneira errada ou devo ser imensamente estúpido)
Meu banco de dados de produção tem vários megas de tamanho e está crescendo.Cada vez que a replicação do banco de dados para e os bancos de dados inevitavelmente começam a ficar fora de sincronia, eu me arrepio.Minha última ressincronização do dump levou quase 4 horas de ida e volta!
Como sempre, mesmo após a sincronização, encontro esse tipo de erro que interrompe o show":
Error 'Duplicate entry '252440' for key 1' on query.
Eu adoraria se houvesse alguma maneira de monitorar de perto o que está acontecendo e talvez deixar o software lidar com isso.Sou até atento às empresas de serviços que podem me ajudar a monitorar melhor meus dados.Ou uma forma alternativa de espelhar completamente.
Editar:analisando minhas perguntas anteriores, descobri esse o que ajuda tremendamente.Ainda estou atento à solução de monitoramento.
saúde,
/mp
Solução
Para monitorar os servidores usamos o serviço gratuito ferramentas do Maatkit ...simples, mas eficiente.
A replicação binária está disponível no 5.1, então acho que você tem coragem.Ainda usamos o 5.0 e funciona bem, mas é claro que tivemos alguns problemas com ele.
Usamos uma replicação Master-Master com um proxy MySql como balanceador de carga na frente e para evitar erros:
- removemos todos os índices exclusivos
- para os poucos casos em que realmente precisávamos de restrições exclusivas, nos certificamos de usar REPLACE em vez de INSERT (o proxy MySql pode ser usado para proteger o uso adequado ...pode até reescrever suas consultas)
- scripts agendados que fazem relatórios intensivos estão sempre acessando o mesmo servidor (não o balanceador de carga) ...para que operações perigosas sejam replicadas com segurança
Sim, eu sei que parece simples e estúpido, mas resolveu 95% de todos os problemas que tivemos.
Outras dicas
Usamos replicação mysql para replicar dados para cerca de 30 servidores.Nós os monitoramos com nagios.Provavelmente você pode verificar o status da replicação e usar um manipulador de eventos para reiniciá-lo com 'SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;Iniciar escravo;'.Isso corrigirá o erro, mas você perderá a inserção que causou o erro.
Sobre o erro, você usa tabelas de memória em seus escravos?Eu pergunto isso porque a única vez que recebemos muitos desses erros, eles foram causados por um bug nas versões mais recentes do MySQL.'Excluir da tabela onde campo = valor' excluirá apenas uma linha nas tabelas de memória, mesmo que haja várias linhas.