Gerenciamento de Grupos de Bancos de Dados MySQL com MySQL Fabric

O MySQL Fabric torna mais simples o gerenciamento de grupos de bancos de dados MySQL. Você pode e deve utilizar o MySQL Fabric sempre que precisar de uma solução de alta disponibilidade para o seu ambiente produtivo. Além disso, ele provê failover automático e detecção de falhas.
Apesar de o MySQL Fabric prover o “database sharding”, neste artigo iremos abordar apenas a parte da alta disponibilidade do Fabric. Essa parte, basicamente, organiza os servidores MySQL em grupos, ou comumente conhecido como “high-availability groups”, para proporcionar alta disponibilidade. Por exemplo, se você está utilizando uma replicação padrão assíncrona, o Fabric pode ser configurado para monitorar automaticamente o estado dos servidores em um determinado grupo. Nesse caso, se o “Master” atual do grupo falhar, o Fabric elege um novo servidor no grupo para se tornar o “Master”. Mas caso você queira, também é possível realizar o failover de forma manual.

Para utilizar o MySQL Fabric, será necessário utilizar um conector MySQL na aplicação (disponível para download no site do MySQL), que utilize o protocolo XML-RPC. Atualmente, o Python Driver (Connector/Python) e JDBC Driver (Connector/J) são “fabric-aware”, ou seja, estão prontos para o Fabric.

Saiba mais: JDBC tutorial

O MySQL Fabric não trabalha sozinho. As informações de todos os servidores e grupos são gerenciadas por uma instância MySQL separada, que é utilizada como uma espécie de “repositório” do Fabric. Essa instância é chamada de “Backing Store” e não pode fazer parte de nenhum grupo de servidores os chamados “high-availability group”. Já as instâncias MySQL gerenciadas pelo Fabric, precisam ter o “Global Transaction Identifiers” (GTID) habilitado. Esse parâmetro é utilizado pelo Fabric para checar e manter a consistência entre os servidores. O MySQL Fabric organiza os servidores em “high-availability groups” para gerenciar diferentes “shards” ou simplesmente proporcionar alta disponibilidade, que é o assunto que iremos abordar aqui.

Quando utilizamos a tecnologia de master/slave, o Fabric pode ser configurado para trabalhar monitorando o estado atual de cada instância para gerenciar quem é o atual “Master”. Por exemplo, se estiver utilizando uma replicação padrão assíncrona, o Fabric monitora o status de cada servidor no grupo. Então, em caso de falha do “Master”, o Fabric elege um novo servidor no grupo para se tornar o “Master”, tudo isso de forma automática.

Para quem está familiarizado com a solução de alta disponibilidade do Oracle Database, o “Oracle Dataguard”, estará mais familiarizado com o MySQL Fabric pois ele tem um papel muito semelhante ao “Broker” do Oracle Dataguard, provendo o failover/switchover de forma manual ou automática.

Assim como no “Broker”, temos a ferramenta DGMGRL para efetuar comandos e administrar a replicação entre os Oracle Databases. No MySQL Fabric utilizamos a ferramenta chamada “mysqlfabric” que segue o mesmo propósito. Com esta ferramenta é possível executar diversas operações, tais como criar e gerenciar grupos, verificar o status da replicação, fazer switchover/failover e várias outras operações.

No exemplo a seguir faremos uma demonstração de como funciona o MySQL Fabric. Para isso iremos utilizar a versão do Linux RHEL x.x, rodando o MySQL 5.7 para ser o repositório (“Backing Store”) do MySQL Fabric.

O MySQL Fabric

No Linux, o MySQL Fabric fica dentro do pacote rpm “MySQL Utilities” disponível para download na página principal (seção Links). Portanto, basta instalar esse pacote que o MySQL Fabric estará instalado, pronto para configuração.

Conceitos Gerais

Para entender o MySQL Fabric, primeiramente precisamos apresentar uma terminologia usada pelo projeto. Começaremos listando definições básicas e, em seguida, entraremos em mais detalhes quando necessário.

  • Grupo: Uma coleção de servidores mysqld;
  • N ...
    Quer ler esse conteúdo completo? Tenha acesso completo