MySQL master-master-replication como mestre para replicação mestre-escravo

2

queremos configurar uma infraestrutura complexa de replicação de mysql. A idéia é ter 3 clientes, que lidam com pedidos de usuários e são configurados como escravos em uma replicação mestre-escravo no mysql. Há também dois servidores, que são configurados como replicação mestre-mestre. Agora, queremos usar essa replicação mestre-mestre como um único mestre para os três escravos via balanceador de carga (ou proxy). Alguém já configurou uma configuração semelhante? É possível que os dois servidores principais tenham um log binário diferente e isso poderia quebrar a replicação? O sistema é o Debian Lenny com o MySQL 5.1.48

    
por user48303 19.07.2010 / 12:24

3 respostas

1

Eu não estou ciente de uma solução para fazer o que você realiza, já que o MySQL não suporta nativamente servidores escravos replicando de múltiplos mestres.

A replicação circular é frágil e geralmente não é recomendada.

Se o seu mestre principal falhou, o que é um mestre em atuação para todos os escravos, você poderia re-apontá-los para o mestre secundário. Isso normalmente envolve escavar através dos binlogs, o que pode ser bastante entediante e é fácil cometer um erro. Você pode usar o utilitário mk-slave-move do Maatkit para tornar isso um pouco mais fácil.

Você poderia executar várias instâncias do MySQL em cada escravo e, em seguida, ter uma lógica de pulsação ou failover, que seria capaz de alternar no caso da falha principal do mestre. Isso teria que ter lógica substancial para não ser frágil.

Você pode executar um master duplo, ter um escravo de cada mestre e depois balancear a carga de ambos os escravos. Tenha verificação de disponibilidade em seu balanceamento de carga para remover o escravo no caso de uma única falha principal, o que provavelmente seria melhor do que ter vários escravos em cada servidor. Isso não seria bem escalado.

Supostamente, este conjunto de scripts ajuda nesse tipo de configuração, mas não tenho experiência com eles.

Se você deseja alta disponibilidade para consultas de somente leitura, recomendo que as consultas mais importantes sejam executadas nos servidores altamente disponíveis de mestre duplo. Para consultas que não precisam ser em tempo real, faz sentido executá-las contra os escravos de carga múltipla balanceada, o que poderia potencialmente não ter dados atuais em caso de falha do mestre.

    
por 28.07.2010 / 19:29
0

Não seria mais simples configurá-los como mestres e replicá-los em um círculo?

C.

    
por 19.07.2010 / 13:16
0

Depois de ter a configuração mestre-mestre de 2 servidores, a parte difícil é concluída. Independentemente de qual das duas máquinas as gravações estão sendo enviadas, se configuradas corretamente, os logs binários em um dos servidores serão suficientes / completos. Depois disso, apenas configura os escravos de qualquer um dos dois mestres.

Além disso, você sempre pode configurar o escravo do antigo mestre para os dual-masters, então os escravos terão 2 camadas abaixo da hierarquia de replicação. Sua adequação depende do atraso de replicação tolerável para o aplicativo final, mas sou fã da replicação de duas camadas (para facilitar a manutenção).

    
por 22.11.2010 / 18:33