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.
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
Confira outros conteúdos:
Perguntas frequentes
Quem somos?Por que a programação se tornou a profissão mais promissora da atualidade?Como faço para começar a estudar?Em quanto tempo de estudo vou me tornar um programador?Sim, você pode se tornar um programador e não precisa ter diploma de curso superior!O que eu irei aprender estudando pela DevMedia?Principais diferenciais da DevMediaQual o investimento financeiro que preciso fazer para me tornar um programador?Como funciona a forma de pagamento da DevMedia?Por Devmedia Em 2018Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado! Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um Full-Stack Dev!Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.