Alta disponibilidade no Banco de Dados do Azure para MariaDB

Importante

O Banco de Dados do Azure para MariaDB está a caminho da desativação. É altamente recomendável que você migre para o Banco de Dados do Azure para MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para MariaDB?.

O serviço Banco de Dados do Azure para MariaDB é adequado para executar bancos de dados de missão crítica que exigem alto tempo de atividade. Fornece alta disponibilidade durante:

  • Eventos planejados, como operações de computação de escala iniciadas pelo usuário.
  • Eventos não planejados, como falhas subjacentes de hardware, software ou rede.

O Banco de Dados do Azure para MariaDB fornece um contrato de nível de serviço com suporte financeiro para tempo de atividade. Como o serviço é criado na arquitetura do Azure, você pode aproveitar seus recursos para alta disponibilidade, redundância e resiliência sem configurar nenhum componente adicional.

Componentes no Banco de Dados do Azure para MariaDB

Componente Descrição
Servidor de banco de dados MariaDB O Banco de Dados do Azure para MariaDB fornece segurança, isolamento, proteções de recursos e capacidade de reinicialização rápida para servidores de banco de dados. Esses recursos facilitam operações como dimensionamento e recuperação do servidor de banco de dados (em segundos) após uma paralisação.
Normalmente, as modificações nos servidores de dados ocorrem durante uma transação de um banco de dados. Todas as alterações de banco de dados são registradas de forma síncrona na forma de logs write-ahead (arquivos ib_log ) no Armazenamento do Azure, que é anexado ao servidor de banco de dados. Durante o processo de ponto de verificação do banco de dados, as páginas de dados da memória do servidor de banco de dados também são liberadas para o armazenamento.
Armazenamento remoto Todos os arquivos de dados físicos e arquivos de log do MariaDB são armazenados no Armazenamento do Azure, que armazena três cópias de dados em uma região para fornecer redundância, disponibilidade e confiabilidade de dados. A camada de armazenamento é independente do servidor de banco de dados. Ele pode ser desanexado de um servidor de banco de dados com falha e reanexado a um novo servidor de banco de dados em poucos segundos.
O Armazenamento do Azure monitora continuamente quaisquer falhas de armazenamento. Se ele detectar uma corrupção de bloco, ele corrige automaticamente o problema instanciando uma nova cópia de armazenamento.
Gateway O gateway atua como um proxy de banco de dados roteando todas as conexões de cliente para o servidor de banco de dados.

Mitigação do tempo de inatividade planejado

A arquitetura do Banco de Dados do Azure para MariaDB fornece alta disponibilidade durante operações de tempo de inatividade planejadas.

Diagram of elastic scaling in Azure Database for MariaDB.

Aqui estão alguns cenários para manutenção planejada:

Cenário Descrição
Dimensionamento ou redução de escala de computação Quando você executa uma operação de expansão ou redução de computação, o Banco de Dados do Azure para MariaDB provisiona um novo servidor de banco de dados usando a configuração de computação dimensionada. No servidor de banco de dados antigo, o serviço permite que os pontos de verificação ativos sejam concluídos, drena as conexões do cliente e cancela quaisquer transações não confirmadas. Em seguida, o serviço desliga o servidor de banco de dados antigo. Ele desanexa o armazenamento do servidor de banco de dados antigo e anexa o armazenamento ao novo servidor de banco de dados. Quando o aplicativo cliente tenta novamente a conexão ou tenta fazer uma nova conexão, o gateway direciona a solicitação de conexão para o novo servidor de banco de dados.
Dimensionamento do armazenamento A ampliação do armazenamento é uma operação online e não interrompe o servidor de banco de dados.
Implantação de software novo (Azure) Lançamentos de novos recursos ou correções de bugs acontecem automaticamente como parte da manutenção planejada do serviço. Para obter mais informações, consulte a documentação e consulte seu portal.
Atualizações secundárias de versão O Banco de Dados do Azure para MariaDB corrige automaticamente os servidores de banco de dados para a versão secundária que o Azure determina. A aplicação automática de patches acontece como parte da manutenção planejada do serviço. Ele incorre em um curto tempo de inatividade em termos de segundos, e o servidor de banco de dados é reiniciado automaticamente com a nova versão secundária. Para obter mais informações, consulte a documentação e consulte seu portal.

Redução do tempo de inatividade não planejado

O tempo de inatividade não planejado pode ocorrer como resultado de falhas imprevistas, incluindo falhas de hardware subjacentes, problemas de rede e bugs de software. Se o servidor de banco de dados ficar inativo inesperadamente, um novo servidor de banco de dados será provisionado automaticamente em segundos. O armazenamento remoto é anexado automaticamente ao novo servidor de banco de dados.

O mecanismo MariaDB executa a operação de recuperação usando arquivos de banco de dados e log write-ahead e abre o servidor de banco de dados para permitir que os clientes se conectem. As transações não confirmadas são perdidas e o aplicativo deve repeti-las.

Embora você não possa evitar o tempo de inatividade não planejado, o Banco de Dados do Azure para MariaDB o atenua executando automaticamente operações de recuperação no servidor de banco de dados e nas camadas de armazenamento sem exigir intervenção humana.

Diagram of high availability in Azure Database for MariaDB.

Tempo de inatividade não planejado: Cenários de falha e recuperação de serviço

Aqui estão dois cenários de falha e como o Banco de Dados do Azure para MariaDB se recupera automaticamente:

Cenário Recuperação automática
Falha no servidor de banco de dados Se o servidor de banco de dados estiver inativo devido a uma falha de hardware subjacente, o Banco de Dados do Azure para MariaDB descartará as conexões ativas e cancelará todas as transações a bordo. O serviço implanta automaticamente um novo servidor de banco de dados e anexa o armazenamento de dados remoto ao novo servidor de banco de dados. Após a conclusão da recuperação do banco de dados, os clientes podem se conectar ao novo servidor de banco de dados por meio do gateway.
Os aplicativos que usam os bancos de dados MariaDB precisam ser criados de forma que detectem e tentem novamente conexões perdidas e transações com falha. Quando o aplicativo tenta novamente uma conexão, o gateway redireciona de forma transparente a conexão para o servidor de banco de dados recém-criado.
Falha de armazenamento Problemas relacionados ao armazenamento, como uma falha de disco ou uma corrupção de bloco físico, não afetam os aplicativos. Como os dados são armazenados em três cópias, o armazenamento sobrevivente serve a cópia dos dados. O Banco de Dados do Azure para MariaDB corrige automaticamente corrupções de bloco. Se uma cópia dos dados for perdida, o serviço criará automaticamente uma nova cópia dos dados.

Aqui estão os cenários de falha que exigem a ação do usuário para recuperação:

Cenário Plano de recuperação
Falha de região A falha de uma região é um evento raro. No entanto, se você precisar de proteção contra uma falha de região, poderá configurar uma ou mais réplicas de leitura em outras regiões para recuperação de desastres. Para obter detalhes, consulte este artigo sobre como criar e gerenciar réplicas de leitura. Se ocorrer uma falha no nível da região, você poderá promover manualmente uma réplica de leitura configurada em outra região para ser seu servidor de banco de dados de produção.
Erro lógico/do usuário A recuperação de erros do usuário, como tabelas descartadas acidentalmente ou dados atualizados incorretamente, envolve a execução de uma recuperação point-in-time. Essa ação restaura e recupera os dados até o momento imediatamente anterior à ocorrência do erro.
Se desejar restaurar apenas um subconjunto de bancos de dados ou tabelas específicas em vez de todos os bancos de dados no servidor de banco de dados, você poderá restaurar o servidor de banco de dados em uma nova instância, exportar as tabelas via mysqldump e restaurar essas tabelas no banco de dados.

Resumo

O Banco de Dados do Azure para MariaDB tem recursos inerentes de alta disponibilidade para ajudar a proteger seus bancos de dados contra paralisações comuns. Ele fornece capacidade de reinicialização rápida de servidores de banco de dados, armazenamento redundante e roteamento eficiente do gateway. Para proteção de dados adicional, você pode configurar backups para serem replicados geograficamente e implantar réplicas de leitura em outras regiões.

Próximas etapas