Pergunta

Eu honestamente tentou este left e direito e ainda achar que o meu servidor espelho, configurado como um escravo replicação ainda fica atrás. base de usuários do meu aplicativo continua crescendo e agora Ive alcançou o ponto onde eu não posso manter "desligar" a bases de dados "RESYNC" (nem mesmo nos fins de semana).

De qualquer forma, a minha pergunta: Existe alguma plausíveis, acessíveis , alternativas para replicação log binário? Eu tenho dois servidores para que não iria considerar a compra de um terço para balanceamento de carga ainda, a não ser a sua única opção.

Cheers,

/ MP

Foi útil?

Solução

Seus executa mestre em paralelo e seus executa escravo em série. Se o seu mestre pode processar 1,5 horas de inserções / atualizações / executa em 1 hora real, seu escravo vai ficar para trás.

Se você não consegue encontrar formas de melhorar o desempenho de gravação em seu escravo (mais memória, discos mais rápidos, remover índices desnecessários), você bateu uma limitação na sua arquitetura de aplicações. Eventualmente, você vai bater um ponto que você não pode executar as alterações em tempo real tão rápido quanto seu mestre pode executá-los em paralelo.

Um monte de grandes sites caco suas bases de dados: considere dividir o seu mestre + escravo em vários clusters mestre + escravos. Em seguida, dividir sua base de clientes através destes clusters. Quando um escravo começa a ficar para trás, é hora de adicionar outro cluster.

Não é barato, mas a menos que você pode encontrar uma maneira de fazer a replicação binlog executar instruções em paralelo você provavelmente não vai encontrar uma melhor maneira de fazê-lo.

Update (2017) : MySQL agora suporte paralelas segmentos de trabalho escravo . Ainda há muitas variáveis ??que fará com que um escravo a ficar para trás, mas escravos não precisa escrever de forma serial. Escolhendo para preservar a cometer ordem de tópicos escravos paralelas é uma opção importante para olhar se o estado exato do escravo em qualquer ponto do tempo é crítico.

Outras dicas

Você já tentou: 1) SET innodb_flush_log_at_trx_commit = 0 2) SET sync_binlog = 0

Tanto vai ajudar a acelerar o seu escravo com um pequeno nível de risco adicional se você tiver uma falha do servidor.

Como adicionar memória ao escravo provavelmente ajudaria. Fomos de 32 a 128 megas e ficando mais ou menos foi embora. Mas a sua nem barato nem será suficiente em todas as situações.

A compra de um terceiro servidor, provavelmente, não ajuda que muito embora, você provavelmente só pegar outro escravo atraso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top