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
- Jelastic liberou o cluster automático para bancos de dados e servidores de aplicativos prontos para uso
- Replicação Master-Slave e Master-Master com MariaDB/MySQL Auto-Сustering
- MariaDB/MySQL Auto-clustering com balanceamento de carga e replicação para alta disponibilidade e desempenho
***
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/