Como configurar dois servidores mysql no modo de sincronização

2

Infraestrutura

Eu tenho dois servidores de banco de dados, sendo executados em duas caixas diferentes. Um funciona como um banco de dados principal para o meu aplicativo da web e outros funciona como banco de dados secundário. A base de dados secundária é atualizada pelo recurso de replicação no servidor mysql. O servidor de banco de dados primário funciona como mestre e o servidor de banco de dados secundário funciona como cliente.

Requisito

atualmente, meu aplicativo da web interage apenas com o banco de dados principal. Eu quero adicionar uma funcionalidade que permitirá que o aplicativo use o servidor de banco de dados secundário se o principal estiver inativo por algum motivo. Agora, eu preciso de alguma ferramenta / programa para sincronizar as alterações feitas no banco de dados secundário para o banco de dados primário quando ele estiver ativo.

Basicamente eu estou procurando um recurso que permitirá que meus bancos de dados estejam em sincronia o tempo todo sem falhar. Por favor me sugerir, como posso conseguir isso?

Obrigado,

Vijay

    
por vijay.shad 25.09.2010 / 06:32

1 resposta

3

Você precisa fazer algo chamado replicação multimestre (também conhecido como replicação mestre-mestre).

Há um número de guias que guiam você por o processo .

Existem duas maneiras de usar uma configuração de replicação mestre-mestre. A maneira imprópria é escrever (INSERIR / ATUALIZAR etc.) para ambos os mestres ao mesmo tempo. Embora o MySQL forneça parâmetros de configuração que podem ajudar se você decidir fazer isso, sugiro que não confie nesse comportamento. Particularmente, não pense que você pode dividir suas gravações nas máquinas como um tipo de balanceamento de carga, não existe tal coisa. Todas as gravações ocorrerão em todos os servidores.

A maneira correta é usar um mestre como um hot standby e gravar somente um mestre por vez. Confie em mim isso vai poupar muita dor quando as coisas dão errado. Existe até mesmo uma ferramenta, MMM (Multi-Master Replication Manager para MySQL) que pode ajudar com monitoramento e failover para isso. Isso requer um terceiro servidor para monitorar os mestres.

Uma última coisa. NÃO, repito, NÃO tente "escalar" para fora adicionando mestres adicionais para criar um loop. Como eu disse anteriormente, isso não é escalável, já que todo servidor deve fazer cada gravação em todos os outros servidores . Também é um completo pesadelo para reparar a replicação de uma falha não transitória de um dos mestres. A perda de um servidor "interrompe" todos os servidores no loop depois dele, porque eles não estão mais recebendo atualizações dos servidores a jusante deles.

    
por 25.09.2010 / 07:16