Redundância do MySQL para alta disponibilidade pela Internet

3

Estou testando algumas opções de infraestrutura antes de começar a escrever um aplicativo da web. Eu gostaria de ter dois servidores de banco de dados MySQL separados em diferentes locais físicos, mas se um deles cair, eu gostaria de poder fazer failover para o outro com perda mínima de dados.

Pelo que vejo, o MySQL suporta apenas um servidor "mestre" e vários servidores "escravos". Estou assumindo que o raciocínio por trás dessa configuração é fazer suas gravações no mestre e tentar fazer suas "leituras" nos servidores escravos.

Existe uma maneira de configurá-lo para que eu tenha a capacidade de fazer failover e gravar no servidor escravo se o servidor mestre cair?

Coisas a serem lembradas em meu teste: tenho dois VPS de provedores diferentes com um IP externo cada.

    
por muncherelli 05.09.2011 / 07:39

4 respostas

3

Faça o check-out Galera . Dizem que se replica por uma WAN ou Cloud. Galera tem recebido muita atenção recentemente nos círculos do MySQL, mas não é um produto maduro, então você precisa avaliar sua recompensa / risco com cuidado.

    
por 05.09.2011 / 16:03
1

O documento de referência do MySQL Alternando mestres durante o failover descreve como você pode implementar failover em um esquema de replicação mestre / escravo e o Multi- O documento Master and Circular Replication descreve vários outros esquemas de replicação que podem atender melhor às suas necessidades do que a replicação master / slave com failover.

    
por 05.09.2011 / 09:21
1

MySQL only supports one "master" server and multiple "slave" servers

Não, mesmo deixando de lado a opção de ndb clustering, você pode ter vários mestres e vários escravos. A replicação master-master pode atender seus requisitos. Dê uma olhada no mysqlproxy / HAproxy para ferramentas para manipular nós com falha.

É possível roteirizar a promoção de um nó escravo no caso de uma indisponibilidade em uma replicação mestre / escravo - mas, a menos que você tenha um bom motivo para adotar essa abordagem, eu recomendo que seja claro.

    
por 05.09.2011 / 12:19
0

Eu gostaria de recomendar o seguinte:

Uma combinação de quatro (4) coisas para uma boa alta disponibilidade

  • Replicação circular do MySQL
  • DRBD
  • ucarp
  • InnoDB

O que é engraçado sobre esta questão é que esta é a terceira vez que eu já respondi a uma pergunta como essa. Na verdade, resolvi essa questão no DBA StackExchange 3 vezes (2 respostas + resposta de comentários no Meta):

link

link

link

    
por 06.09.2011 / 19:06