MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como criar um clone do seu cluster de banco de dados MySQL ou PostgreSQL

Se você estiver gerenciando um banco de dados de produção, as chances são altas de que você teve que clonar seu banco de dados para um servidor diferente do servidor de produção. O método básico de criação de um clone é restaurar um banco de dados de um backup recente em outro servidor de banco de dados. Outro método é replicar de um banco de dados de origem enquanto ele ainda está em execução; nesse caso, é importante que o banco de dados original não seja afetado por nenhum procedimento de clonagem.

Por que você precisaria clonar um banco de dados?

Um cluster de banco de dados clonado é útil em vários cenários:

  • Resolva problemas do seu cluster de produção clonado na segurança do seu ambiente de teste enquanto executa operações destrutivas no banco de dados.
  • Teste de patch/atualização de um banco de dados clonado para validar o processo de atualização antes de aplicá-lo ao cluster de produção.
  • Valide backup e recuperação de um cluster de produção usando um cluster clonado.
  • Valide ou teste novos aplicativos em um cluster de produção clonado antes de implantá-lo no cluster de produção ativo.
  • Clone rapidamente o banco de dados para requisitos de auditoria ou conformidade de informações, por exemplo, no final do trimestre ou do ano, quando o conteúdo do banco de dados não deve ser alterado.
  • Um banco de dados de relatórios pode ser criado em intervalos para evitar alterações de dados durante as gerações de relatórios.
  • Migre um banco de dados para novos servidores, novo ambiente de implantação ou um novo data center.

Ao executar sua infraestrutura de banco de dados na nuvem, o custo de possuir um host (máquina virtual compartilhada ou dedicada) é significativamente menor em comparação com a forma tradicional de alugar espaço em um datacenter ou possuir um servidor físico. Além disso, a maior parte da implantação na nuvem pode ser automatizada facilmente por meio de APIs de provedores, software cliente e scripts. Portanto, clonar um cluster pode ser uma maneira comum de duplicar seu ambiente de implementação, por exemplo, de dev para staging para produção ou vice-versa.

Nós não vimos este recurso sendo oferecido por ninguém no mercado, portanto, é nosso privilégio mostrar como ele funciona com o ClusterControl.

Clonagem de um cluster MySQL Galera

Um dos recursos interessantes do ClusterControl é que ele permite clonar rapidamente um cluster MySQL Galera existente para que você tenha uma cópia exata do conjunto de dados no outro cluster. O ClusterControl executa a operação de clonagem online, sem nenhum bloqueio ou inatividade do cluster existente. É como uma operação de expansão de cluster, exceto que ambos os clusters são independentes um do outro após a conclusão da sincronização. O cluster clonado não precisa necessariamente ter o mesmo tamanho de cluster que o existente. Poderíamos começar com um cluster de um nó e escalá-lo com mais nós de banco de dados em um estágio posterior.

Neste exemplo, temos um cluster chamado "Staging" que gostaríamos de clonar como outro cluster chamado "Production". A premissa é que o cluster de teste já armazenou os dados necessários que estarão em produção em breve. O cluster de produção consiste em outros 3 nós, com especificações de produção.

O diagrama a seguir resume a arquitetura final do que queremos alcançar:

A primeira coisa a fazer é configurar um SSH sem senha do servidor ClusterControl para os servidores de produção. No servidor ClusterControl, execute o seguinte:

$ whoami

root

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Digite a senha raiz do servidor de destino, se solicitado.

Na lista de clusters do banco de dados ClusterControl, clique no botão Cluster Action e escolha Clone Cluster. O seguinte assistente aparecerá:

Especifique os endereços IP ou nomes de host do novo cluster e certifique-se de obter todo o ícone verde ao lado do host especificado. O ícone verde significa que o ClusterControl pode se conectar ao host via SSH sem senha. Clique no botão "Clone Cluster" para iniciar a implantação.

As etapas de implantação são:

  1. Crie um novo cluster composto por um nó.
  2. Sincronize o novo cluster de um nó via SST. O doador é um dos servidores de origem.
  3. Os novos nós restantes ingressarão no cluster depois que o doador do cluster clonado for sincronizado com o cluster.

Depois de concluído, um novo MySQL Galera Cluster será listado no painel do cluster ClusterControl assim que o trabalho de implantação for concluído.

Observe que a clonagem de cluster apenas clona os servidores de banco de dados e não toda a pilha do cluster. Isso significa que outros componentes de suporte relacionados ao cluster, como balanceadores de carga, endereço IP virtual, árbitro Galera ou escravo assíncrono, não serão clonados pelo ClusterControl. No entanto, se você quiser clonar como uma cópia exata de sua infraestrutura de banco de dados existente, poderá fazer isso com o ClusterControl implantando esses componentes separadamente após a conclusão da operação de clonagem do banco de dados.

Criando um cluster de banco de dados a partir de um backup

Outro recurso semelhante oferecido pelo ClusterControl é "Criar cluster a partir do backup". Este recurso é introduzido no ClusterControl 1.7.1, especificamente para clusters Galera Cluster e PostgreSQL onde se pode criar um novo cluster a partir do backup existente. Contrariamente à clonagem de cluster, esta operação não traz carga adicional para o cluster de origem com uma compensação do cluster clonado não estar no estado atual como o cluster de origem.

Para criar um cluster a partir de um backup, você deve ter um backup funcional criado. Para Galera Cluster, todos os métodos de backup são suportados, enquanto para PostgreSQL, apenas pgbackrest não é suportado para implantação de novo cluster. A partir do ClusterControl, um backup pode ser criado ou agendado facilmente em ClusterControl -> Backups -> Criar Backup. Na lista do backup criado, clique em Restaurar backup, escolha o backup da lista e escolha "Criar cluster do backup" na opção de restauração:

Neste exemplo, vamos implantar um novo cluster PostgreSQL Streaming Replication para o ambiente de teste, com base no backup existente que temos no cluster de produção. O diagrama a seguir ilustra a arquitetura final:

A primeira coisa a fazer é configurar um SSH sem senha do servidor ClusterControl para os servidores de produção. No servidor ClusterControl, execute o seguinte:

$ whoami

root

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Ao escolher Criar cluster do backup, o ClusterControl abrirá uma caixa de diálogo do assistente de implantação para ajudá-lo a configurar o novo cluster:

Uma nova instância do PostgreSQL Streaming Replication será criada a partir do backup selecionado, que será usado como o conjunto de dados base para o novo cluster. O backup selecionado deve ser acessível a partir dos nós do novo cluster ou armazenado no host ClusterControl.

Clicar em "Continuar" abrirá o assistente de implantação de cluster de banco de dados padrão:

Observe que a senha do usuário root/admin para este cluster deve ser a mesma que a senha de administrador/raiz do PostgreSQL conforme incluída no backup. Siga o assistente de configuração de acordo e o ClusterControl, em seguida, execute a implantação na seguinte ordem:

  1. Instale os softwares e dependências necessários em todos os nós do PostgreSQL.
  2. Inicie o primeiro nó.
  3. Transmita e restaure o backup no primeiro nó.
  4. Configure e adicione o restante dos nós.

Depois de concluído, um novo PostgreSQL Replication Cluster será listado no painel do cluster ClusterControl assim que o trabalho de implantação for concluído.

Conclusão

ClusterControl permite clonar ou copiar um cluster de banco de dados para vários ambientes com apenas alguns cliques. Você pode baixá-lo gratuitamente hoje. Boa clonagem!