Banco de Dados

6 dez, 2018

Replicação de grupo Single-Primary e Multi-Primary do MySQL

204 visualizações
Publicidade

Neste artigo, continuamos a explorar as possibilidades do armazenamento em cluster automático do banco de dados, cobrindo a Replicação de Grupo do MySQL, que está disponível para instalação automática no Jelastic PaaS.

A Replicação de Grupo do MySQL (MGR) ajuda a criar sistemas tolerantes a falhas com redundância, replicando o estado em um conjunto de servidores. Consequentemente, mesmo que alguns dos servidores falhem (desde que não seja a maioria deles), o sistema ainda estará disponível.

Com isso, todas as transações de leitura-gravação são comprometidas/confirmadas somente após serem aprovadas pelo grupo, enquanto as solicitações somente de leitura não precisam de coordenação e, portanto, são processadas imediatamente.

O MySQL Group Replication é um plugin do servidor MySQL que fornece replicação de máquina de estado distribuída com forte coordenação entre servidores. Assim, os servidores se coordenam automaticamente quando fazem parte do mesmo grupo.

O grupo pode operar em um modo primário único com uma eleição primária automática, em que apenas um servidor aceita atualizações de cada vez.

Alternativamente, para usuários mais avançados, o grupo pode ser implantado no modo multi-primário, onde todos os servidores podem aceitar atualizações, mesmo que sejam emitidos simultaneamente.

Para usar a Replicação de Grupo, as instâncias do servidor devem atender aos seguintes requisitos:

  • Mecanismo de armazenamento InnoDB. Os dados devem ser armazenados no mecanismo de armazenamento transacional InnoDB.
  • Chaves Primárias. Cada tabela que deve ser replicada pelo grupo deve ter uma chave primária definida ou equivalente de chave primária (uma chave exclusiva/única não nula).
  • Rede IPv4. O mecanismo de comunicação de grupo usado pela Replicação de Grupo do MySQL requer infraestrutura de rede IPv4.
  • Performance de Rede. A Replicação de Grupo é projetada para ser implantada no ambiente em cluster onde as instâncias do servidor estão muito próximas umas das outras e é afetada pela latência da rede e pela largura de banda da rede.

A replicação de grupo pode operar em dois modos:

  • single-primary: apenas um servidor pode aceitar atualizações de cada vez e, se ficar indisponível, a eleição de um novo node primário é chamada automaticamente
  • multi-primary: todos os servidores podem aceitar atualizações (mesmo que sejam emitidos simultaneamente)

Agora, vamos aprender sobre os detalhes da execução de uma Replicação de Grupo do MySQL e as diferenças entre os modos Single- e Multi-Primary em detalhes.

Replicação de grupo com Armazenamento em Cluster MySQL Single-Primary

Ao operar com o MGR, os seguintes detalhes devem ser considerados:

  • Grupo pode incluir até 9 servidores no máximo e qualquer tentativa subsequente de adicionar servidor fará com que a solicitação de associação seja recusada
  • A comunicação interna é baseada em uma conexão TCP peer-to-peer/ponto-a-ponto, que é usada apenas para a transmissão de mensagens entre membros do grupo
  • Carga adicional (quando comparado com a replicação mestre-escravo e mestre-mestre) é esperada devido à necessidade de servidores constantes que interagem para fins de sincronização
  • A fim de permanecer operável, a maioria dos membros do grupo deve estar ativa; isso afeta diretamente o número de falhas do servidor, que podem ser toleradas

No modo single-primary, um membro do grupo é emitido com permissões de leitura-gravação (isto é, é configurado como principal), enquanto os membros restantes são definidos como somente leitura.

De tal forma, apenas um único node do seu cluster de banco de dados pode aceitar e processar atualizações. Assim, no caso da falha primária, uma eleição automática será realizada para atribuir uma nova.

Para criar uma replicação de grupo single-primary, selecione Single MGR no assistente de topologia durante a criação do ambiente.

Nota: A Replicação de Grupo Single-Primary é configurada por padrão para o cluster de banco de dados de 3 nodes, mas o número pode ser aumentado pressionando “+” no bloco Horizontal Scaling do assistente de topologia.

Após a criação, você deve obter a topologia semelhante à exibida acima.

Replicação de grupo com Armazenamento em Cluster MySQL Multi-Primary

O modo Replicação de Grupo Multi-Primary compartilha os detalhes do MGR descritos na seção anterior, mas todos os membros do cluster são fornecidos com permissões de leitura-gravação e podem aceitar atualizações.

Tal implementação fornece benefícios de gravação simultânea em diferentes servidores MySQL, e não requer tempo para eleger e preparar novas primárias em caso de necessidade.

Para instalar um cluster de Replicação de Grupo Multi-Primary, selecione Multi MGR na mesma lista suspensa do assistente de topologia mencionado acima. A topologia padrão para o cluster de Replicação de Grupo Multi-Primary inclui 3 servidores (e pode ser aumentada durante a criação do ambiente).

A diferença pode ser observada no painel de administração do Orquestrador que pode ser acessado com as credenciais do e-mail apropriado relacionado à implantação do Balanceador de Carga ProxySQL. Como é mostrado nesta imagem composta, todos os membros do cluster são Graváveis (isto é, podem aceitar atualizações).

Agora, você conhece as principais possibilidades de replicação de grupo de cluster automático integrado e como é fácil ativar essa função. Portanto, obtenha seu cluster de banco de dados altamente disponível e confiável configurado automaticamente num instante e sem nenhum esforço com o Jelastic PaaS.

Artigos relacionados

***

Tetiana Fydorenchyk faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://jelastic.com/blog/single-multi-primary-mysql-group-replication-auto-clustering/