Skip to Content

O que é alta disponibilidade do MySQL?

A alta disponibilidade do MySQL é uma opção que você pode selecionar para permitir que seu banco de dados MySQL permaneça disponível em caso de falha ou interrupção. O recurso permite definir requisitos de tempo de atividade mais altos e tolerância zero à perda de dados. Neste artigo, veremos o que significa o conceito geral de alta disponibilidade e como funciona a opção de alta disponibilidade do MySQL. 

O que é alta disponibilidade?

Alta disponibilidade é a capacidade de um sistema ou serviço de continuar funcionando e permanecer disponível quando ocorre uma falha ou interrupção. Um sistema altamente disponível garante que os sistemas e aplicativos essenciais de uma organização estejam sempre funcionando. É especialmente importante para organizações em setores como saúde, finanças e aviação, onde a falha de um sistema essencial pode ter consequências graves.

A alta disponibilidade normalmente é expressa como uma porcentagem do tempo de atividade definida por acordos de nível de serviço (SLAs, Service Level Agreements), com uma pontuação de 100 representando um sistema que nunca falha. Como isso é praticamente inatingível, a maioria das organizações busca disponibilidade de 99,999%.

Como o MySQL alcança alta disponibilidade

Um sistema altamente disponível deve ser capaz de se recuperar instantaneamente se ocorrer uma falha. Uma arquitetura de alta disponibilidade requer pelo menos três elementos básicos que trabalham juntos para garantir recuperação e alta disponibilidade:

Detecção de falhas

O MySQL tem uma opção de alta disponibilidade que permite que os aplicativos atendam aos requisitos de maior tempo de atividade (e tolerância zero à perda de dados). Quando a opção Alta disponibilidade está ativada, o sistema MySQL cria três instâncias em diferentes domínios de falha ou zonas de disponibilidade.

Os dados são replicados entre as três instâncias usando a replicação de grupo MySQL, e o aplicativo se conecta à instância primária para leitura e gravação de dados de e para o banco de dados. Se ocorrer uma falha, o sistema aciona um failover automático para uma instância secundária em minutos.

Failover

O mecanismo de failover transfere serviços para uma instância replicada. Se mais de uma instância de backup estiver disponível, o mecanismo de failover escolherá a melhor para promover para o nó primário. 

Um mecanismo de redirecionamento

Depois que ocorre o failover para uma instância secundária, o recurso Alta disponibilidade redireciona todas as conexões de aplicativos e usuários para o que agora é o novo nó primário. Ele também redireciona todas as consultas do nó primário antigo para o novo banco de dados primário. 

Alta disponibilidade do MySQL: Tempo de atividade

Tempo de atividade é o tempo em que um sistema está disponível e funcionando corretamente e é expresso como uma porcentagem do tempo total em que se espera que o sistema esteja operacional. Alto tempo de atividade significa que o sistema está disponível e funcionando como esperado na maioria das vezes. 

O tempo de atividade que você pode esperar com diferentes níveis de alta disponibilidade do MySQL dependerá da solução específica de alta disponibilidade (HA, High Availability) que você implementar.

Replicação do MySQL

O MySQL Replication permite configurar vários servidores para fornecer redundância e failover para dar suporte a tempos de atividade mais altos do que um servidor MySQL sem capacidade de HA. Uma configuração mestre-escravo usa um único servidor mestre que aceita leituras e gravações e um ou mais servidores secundários somente leitura. Os dados do servidor mestre são replicados de forma assíncrona para os servidores secundários.

Para implementar o failover, você precisará configurar um ou mais servidores secundários como standbys que podem ser promovidos a mestre em caso de falha. O failover é geralmente um processo manual em que você precisa promover o nó secundário para o nó mestre alterando o status do escravo promovido para o modo de leitura/gravação para que ele possa aceitar consultas.

Como o failover é feito manualmente, levará mais tempo e pode ser propenso a erro humano, levando a uma interrupção mais longa. A replicação do MySQL também usa replicação assíncrona, o que significa que, se o master falhar, as transações comprometidas no master podem ainda não ter replicado para os servidores secundários. Se houver perda crítica de dados, os dados precisarão ser restaurados, aumentando o tempo de inatividade do sistema.

Replicação do grupo MySQL

O MySQL Group Replication permite que você obtenha tempo de atividade mais alto do que o MySQL Replication. Usando o MySQL Group Replication, você configura vários servidores MySQL em um grupo com um servidor designado como servidor primário e os outros servidores como servidores secundários. Cada servidor do grupo mantém uma cópia dos dados e usa replicação para garantir que as cópias permaneçam em sincronia. 

Se o servidor primário ficar inativo, os servidores secundários no grupo detectarão automaticamente a falha e iniciarão o processo de failover. Um dos servidores secundários é automaticamente promovido para o novo servidor primário e começa a atender solicitações de clientes. Os outros membros secundários do grupo agora recebem atualizações do novo servidor primário e continuam processando solicitações lidas pelo cliente.

Se o servidor com falha voltar a ficar online, ele automaticamente se juntará ao grupo como um servidor secundário.

Como a detecção de falhas e o failover ocorrem automaticamente com a replicação do grupo MySQL, o tempo de inatividade é mínimo, e os usuários e aplicativos normalmente não sabem que ocorreu uma interrupção. 

Cluster MySQL

Uma solução de HA de cluster MySQL oferece o mais alto nível de tempo de atividade. Esse sistema de banco de dados distribuído e altamente disponível, juntamente com failover automático e balanceamento de carga, oferece altos níveis de disponibilidade, desempenho e escalabilidade, além de ser desenvolvido para oferecer tempo de inatividade quase zero. 

O MySQL Cluster usa três tipos de nós que trabalham juntos para armazenar e gerenciar dados:

  • Nós de dados: Armazene dados e lide com consultas de leitura e gravação.
  • Nós do servidor MySQL: Receba consultas dos aplicativos clientes, processe-as nos nós de dados e devolva o resultado aos clientes.
  • Nós de gerenciamento: Gerencie a operação do cluster e lide com failover e recuperação se ocorrer uma falha.

Se um ou mais nós em um cluster falharem, o cluster detectará automaticamente o problema e acionará o processo de failover. Todo o processo normalmente acontece em um segundo após uma falha, sem interromper o serviço aos aplicativos do cliente. O cluster continua operando normalmente, praticamente sem tempo de inatividade.

Test drive do FlashArray

Veja como a Pure Storage simplifica consideravelmente blocos e arquivos em um ambiente de autoatendimento.

Experimente agora mesmo

Alta disponibilidade do MySQL: Tempo de recuperação 

O tempo de recuperação é a medição do tempo que leva para um sistema MySQL se recuperar de uma interrupção. Um tempo de recuperação mais longo resulta em disponibilidade reduzida e pode afetar diretamente a capacidade da empresa de gerar receita, produtividade dos funcionários e satisfação do cliente.

No MySQL, os tempos de recuperação variam dependendo do tipo de replicação usado:

  • Os tempos de recuperação da replicação do MySQL para replicação mestre-escravo serão afetados pelo processo de failover manual. Depois de promover o servidor secundário para o novo nó primário, você precisará reiniciá-lo para que ele possa começar a replicar dados para os servidores secundários restantes. Em seguida, você precisará considerar as transações perdidas e resolver quaisquer conflitos que possam ocorrer.
  • A replicação em grupo usa um processo automático de detecção de falhas e failover que resulta em tempos de recuperação menores do que a replicação mestre-escravo. Os mecanismos de detecção e resolução de conflitos garantem que os dados em cada servidor estejam sempre sincronizados entre todos os servidores do grupo. A replicação em grupo também usa tipos de dados replicados (CRDTs, Replicated Data Types) livres de conflitos para conciliar dados automaticamente quando ocorre um conflito. Com a replicação em grupo, o sistema pode se recuperar de uma falha com muito pouco tempo de inatividade.
  • O MySQL Cluster usa uma abordagem “sem compartilhar”, em que cada nó no cluster recebe sua própria memória e armazenamento em disco e se comunica com outros nós usando uma conexão de alta velocidade. O MySQL Cluster continua operando mesmo se um ou mais nós falharem. O cluster detecta automaticamente o problema e aciona o processo de failover para recuperação praticamente sem tempo de inatividade.

Como determinar seus requisitos de HA do MySQL

Para determinar seus requisitos de alta disponibilidade do MySQL, você precisará considerar vários fatores, incluindo:

  • Sua arquitetura de sistema atual: Quais componentes seu sistema atual contém e como eles são configurados? Eles podem dar suporte à alta disponibilidade do MySQL?
  • Orçamento: Quanto você precisará investir em recursos como hardware, software e pessoal? Além disso, considere os custos associados ao treinamento e à manutenção contínua.
  • Necessidades de negócios: Considere seus objetivos de tempo de recuperação (RTO, Recovery Time Objectives) e objetivos de ponto de recuperação (RPO, Recovery Point Objectives). Qual é o seu tempo de recuperação ideal? Com que rapidez você precisa se recuperar de uma falha? Considere se sua organização está sujeita a requisitos regulatórios ou de conformidade específicos que exijam alta disponibilidade.
  • Criticidade dos dados: Qual é a importância dos dados da sua empresa? Qual é a importância de estar atualizado? Quanta perda de dados você pode pagar?

Quando usar o MySQL High Availability

Vamos considerar alguns casos de uso que exigem soluções de alta disponibilidade MySQL:

Sites de alto tráfego

Sites de alto tráfego lidam com milhares de consultas e transações por segundo, sem mencionar milhares de usuários simultâneos. Medidas de alta disponibilidade, como redundância de servidor e balanceamento de carga, podem garantir que o banco de dados permaneça disponível e possa lidar com a carga. 

Servidores redundantes garantirão que o site permaneça disponível mesmo que um servidor falhe, e o balanceamento de carga das solicitações recebidas em vários servidores impedirá que um único servidor sobrecarregue e fique off-line.

Cargas de trabalho e aplicativos essenciais

Empresas com sistemas e aplicativos essenciais exigem um alto nível de disponibilidade e tempo de atividade. Na maioria das vezes, esses sistemas não podem se dar ao luxo de experimentar qualquer tempo de inatividade, e o banco de dados precisa permanecer disponível o tempo todo. 

As soluções MySQL HA, como replicação de grupo ou cluster, são ideais neste caso de uso porque empregam um mecanismo de failover automático que resulta em pouco ou nenhum tempo de inatividade.

Como a Pure Storage oferece suporte à alta disponibilidade do MySQL

O Pure Storage ® Evergreen . . é um portfólio de assinaturas que oferece implantações sem tempo de inatividade. Em combinação com a arquitetura de array de armazenamento exclusiva da Pure Storage, o Evergreen permite fazer upgrade da infraestrutura de armazenamento sem interromper as cargas de trabalho de serviço. 

A Pure também é compatível com cluster active-active  e failover automático e transparente com o Purity ActiveCluster ., um cluster estendido active-active de vários locais, sem objetivo de ponto de RPO e objetivo de ponto de recuperação.

Considere também Pure Cloud Block Store. Ele oferece confiabilidade de nuvem de nível corporativo para aplicativos essenciais. Upgrades não disruptivos e alta disponibilidade entre zonas de disponibilidade garantem alta disponibilidade para continuidade de negócios e recuperação de desastres em vários tipos de nuvem.

11/2024
How Healthy Is Your Data Platform Really?
Complete this self-guided wellness check to help determine if your data platform can successfully adapt with your organization into the future.
Infográfico
1 Página
ENTRE EM CONTATO
Dúvidas ou comentários?

Tem dúvidas ou comentários sobre produtos ou certificações da Pure?  Estamos aqui para ajudar.

Agende uma demonstração

Agende uma demonstração ao vivo e veja você mesmo como a Pure pode ajudar a transformar seus dados em resultados poderosos. 

Telefone: 55-11-2844-8366

Imprensa: pr@purestorage.com

 

Sede da Pure Storage

Av. Juscelino Kubitschek, 2041

Torre B, 5º andar - Vila Olímpia

São Paulo, SP

04543-011 Brasil

info@purestorage.com

FECHAR
Seu navegador não é mais compatível.

Navegadores antigos normalmente representam riscos de segurança. Para oferecer a melhor experiência possível ao usar nosso site, atualize para qualquer um destes navegadores mais atualizados.