MySQL Clone Plugin: clonando uma instância MySQL de forma simples e rápida

Introdução

Em alguns cenários do dia a dia de um DBA, precisamos criar uma nova instância MySQL a partir de uma existente. Dependendo do tamanho do ambiente, esse processo pode levar bastante tempo e exigir algumas etapas adicionais.

Pensando nisso, neste artigo vou demonstrar uma prática utilizando o MySQL Clone Plugin, recurso introduzido a partir do MySQL 8.0.17, O Clone Plugin não permite realizar a clonagem entre séries diferentes do MySQL. Por exemplo, não podemos clonar uma instância MySQL 8.0 para 8.4, é possivel a clonagem pode ser realizada dentro da mesma série. Por exemplo, entre versões como MySQL 8.0.35 e 8.0.45 (exemplo).

Por isso, antes de iniciar o processo, vale sempre conferir a versão do MySQL nos dois servidores e garantir que estejam na mesma série. Isso evita problemas de compatibilidade durante a clonagem.

O Clone Plugin permite realizar a cópia física de uma instância MySQL, inclusive através da rede, transferindo os dados de um servidor para outro.

A ideia aqui é mostrar, de forma prática, como podemos utilizar esse recurso para clonar uma instância MySQL de um servidor de origem para um servidor de destino.


Ambiente utilizado

Para essa demonstração, utilizei dois servidores Linux, ambos com o MySQL 8.0.45 instalado.

Vou utilizar os seguintes papéis:

  • Donor: servidor de origem, que possui os dados.   ( 192.168.18.121:3306 Oracle Linux 7 )
  • Recipient: servidor de destino, que receberá a cópia da instância. ( 192.168.18.122:3306 Oracle Linux 10 )

Os servidores também precisam ter comunicação de rede entre si, já que os dados serão transferidos diretamente pela rede.


Pré-requisitos

Antes de iniciar a clonagem, precisamos validar alguns pontos básicos.

1. Comunicação entre os servidores

Primeiro, precisamos garantir que o servidor donor consiga se comunicar com o recipient.

Essa validação é importante porque todo o processo de transferência dos dados será realizado através da rede.

2. Mesma versão do MySQL

Neste laboratório, eu mantive os dois servidores ( donor / recipient ) na mesma versão do MySQL, estão utilizando:

 

3. Instalação do Clone Plugin

O Clone Plugin precisa estar instalado tanto no donor quanto no recipient.

Depois da instalação, podemos verificar se o plugin está realmente carregado na instância.

Validação importante para o funcionamento do processo de clone.

 


Criando o usuário no Donor

Como o donor será a nossa fonte de dados, precisamos criar um usuário que possa realizar a operação de clonagem.

Para isso, utilizamos um usuário específico para o processo e concedemos a ele o privilégio necessário para realizar o backup durante a clonagem.

Um exemplo seria:

Depois podemos conferir os privilégios atribuídos ao usuário:

Usuário preparado para que o recipient consiga utilizar o donor como origem da clonagem.


Executando a clonagem

Com os pré-requisitos atendidos, chegamos à parte mais interessante da demonstração.

No servidor recipient, executamos o comando de clone apontando para o servidor donor.

Nesse momento, o MySQL inicia o processo de clonagem, os dados existentes no donor são transferidos para o recipient. (databases demo : sakila e employees );

 

Uma das coisas que considero interessantes nesse recurso é justamente a simplicidade do processo. Depois de toda a preparação inicial, o comando de clonagem é bastante direto.


Acompanhando o processo

Durante a execução, podemos acompanhar o processo através das informações disponibilizadas pelo próprio MySQL, é possível consultar as tabelas relacionadas ao Clone Plugin para verificar o andamento e o resultado da operação.

 


Validando o resultado

Depois que o processo termina, precisamos validar se a clonagem realmente foi concluída com sucesso.

Uma das primeiras coisas que podemos fazer é verificar novamente as informações relacionadas ao processo de clone.

Além disso, podemos acessar o recipient e verificar os bancos existentes:

Depois podemos consultar algumas tabelas e registros para confirmar que os dados que estavam no donor também estão disponíveis no recipient.

 


Resultado

Depois de realizar o processo e validar os dados, temos no recipient uma cópia física da instância que estava no donor.

Na prática, o Clone Plugin facilita bastante esse tipo de operação.

Em vez de realizar todo o processo tradicional de exportação e importação dos dados, temos um mecanismo nativo do MySQL para realizar a clonagem física de uma instância.


Conclusão

Essa foi uma demonstração simples do MySQL Clone Plugin, mas que mostra bem o potencial desse recurso.

Para mim, uma das principais vantagens é a simplicidade. Depois que os pré-requisitos estão configurados, o processo de clonagem é bastante direto.

É um recurso que pode ser muito útil em diferentes situações, como provisionamento de novos servidores, criação de ambientes de teste, preparação de ambientes para determinadas atividades de DBA e outras situações em que precisamos rapidamente de uma cópia de uma instância MySQL.

O mais interessante é poder fazer isso utilizando um recurso nativo do próprio MySQL.

COMPARTILHE:
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.

PARTICIPE

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

POSTADO POR
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.
PARCEIROS