Como tornar o cluster MySQL completamente à prova de falhas?

Como tornar o cluster MySQL completamente à prova de falhas?

Então, quero configurar um servidor de banco de dados MySQL com alta disponibilidade - assim consegui dois dispositivos (Banana Pi) e segui um tutorial sobre como instalar o software de cluster MySQL. Eu sei que uma constelação de apenas dois dispositivos não é exatamente como o cluster MySQL deve ser usado, mas para economizar custos de hardware, só adquiri esses dois dispositivos por enquanto.

Até agora tenho a seguinte configuração (sqlnode1 e sqlnode2 são os nomes de host dos dispositivos):

Nós de gerenciamento (ndb_mgmd):

  • sqlnode1 (id do nó: 1)
  • sqlnode2 (id do nó: 2)

Mecanismos de armazenamento (ndbd):

  • sqlnode1: configurado para usar o nó de gerenciamento em localhost (id do nó: 3)
  • sqlnode2: configurado para usar o nó de gerenciamento em localhost (id do nó: 4)

Servidores MySQL (mysqld):

  • sqlnode1: configurado para usar ambos os nós ndbd (id do nó: 5)
  • sqlnode2: configurado para usar ambos os nós ndbd (id do nó: 6)

Então, basicamente, todo dispositivo tem ndb_mgmd, ndbd e mysqld em execução.

O que eu gostaria de conseguir é que, se um dos dispositivos falhar, o outro dispositivo seja completamente utilizável (por alguns motivos muito específicos, não posso usar a replicação simples de banco de dados aqui).

Depois de iniciar todos os componentes, tudo está funcionando bem. Se eu alterar os dados em um host MySQL, o outro aplicará as alterações imediatamente (e vice-versa).

Porém, se eu desconectar o cabo LAN de um dos dispositivos, acontece o seguinte:

  • Desconectando sqlnode2: O nó funcional (sqlnode1) trava por um curto período de tempo e depois continua funcionando corretamente (que é basicamente o que eu quero)
  • Desconectando sqlnode1: O nó funcional (sqlnode2) trava por um curto período de tempo e depoisnão funciona de jeito nenhum- todas as consultas terminam em "4009 Cluster Failure" e as consultas só voltam a funcionar após a restauração da conexão de rede do nó que caiu. Depois disso, o monitoramento do daemon ndb_mgmd mostra que o ID do nó 4 (o ndbd em sqlnode2) foi forçado a desligar.

Em resumo, todo o sistema parece depender do sqlnode1 e eu realmente me pergunto por que isso está acontecendo, porque pensei que se um componente caísse (e outro do mesmo tipo estivesse disponível), tudo continuaria funcionando.

Segui este tutorial para configurar dois nós de gerenciamento diferentes:http://www.clusterdb.com/mysql-cluster/deploying-mysql-cluster-over-multiple-hosts

Eu perdi alguma coisa? Ou talvez eu tenha entendido mal como funciona o clustering MySQL?

Responder1

Eu não usei o cluster Mysql, mas você deve ser capaz de fazer replicação nele, também o cluster mysql faz um pouco mais do que você provavelmente precisa, se tudo que você precisa é replicação. O cluster MySQL tem a capacidade de rotear para diferentes servidores sql instantaneamente se um falhar, reduzindo assim a necessidade de modificar os registros DNS do nome do host todas as vezes ou configurar um servidor sql temporário ou apenas deixá-lo inativo até ser corrigido. Ele também pode fazer outras coisas. Então, para ajudá-lo, sugiro usar a edição da comunidade MySQL, pois é mais amigável para você do que o cluster MySQL.

Pegue a edição da comunidade mysql, isso permitirá que você tenha replicação, assim, você pode definir 1 servidor mysql como o mestre onde tudo é editado e o segundo servidor mysql é o escravo e pode apenas recuperar o que o mestre tem em um intervalo configurável . Você também pode adicionar facilmente mais escravos no futuro. Além disso, os escravos não precisam necessariamente estar em máquinas separadas, você pode executar mais de uma instância do MySQL. No entanto, isso anularia o propósito da replicação e seria à prova de falhas. Provavelmente é isso que você está procurando. Além disso, o mysql tem um guia em seu site para configurar a replicação para o mysql community edition.

Servidor da comunidade MySQL

Responder2

Resolvi meus problemas mudando para o cluster Galera MySQL que parece fazer exatamente o que eu quero/preciso.

informação relacionada