Configure a replicação de dados entre o Amazon RDS para MySQL e o MySQL no Amazon EC2 usando GTID - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configure a replicação de dados entre o Amazon RDS para MySQL e o MySQL no Amazon EC2 usando GTID

Criado por Rajesh Madiwale (AWS)

Ambiente: PoC ou piloto

Tecnologias: bancos de dados

Workload: código aberto

Resumo

Esse padrão descreve como configurar a replicação de dados na nuvem do Amazon Web Services (AWS) entre uma instância do Amazon Relational Database Service (Amazon RDS) para MySQL e um banco de dados MySQL em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) usando a replicação do identificador nativo de transação global (GTID) do MySQL.

Com os GTIDs, as transações são identificadas e rastreadas quando são confirmadas no servidor de origem e aplicadas por réplicas. Você não precisa consultar os arquivos de log ao iniciar uma nova réplica durante o failover.

Pré-requisitos e limitações

Pré-requisitos

  •  Uma conta AWS ativa

  • Uma instância do Amazon Linux implantada

Restrições

  • Essa configuração precisa que uma equipe interna execute as consultas somente para leitura.

  • As versões de origem e de destino do MySQL devem ser as mesmas.

  • A replicação é configurada na mesma região da AWS e nuvem privada virtual (VPC).

Versões do produto

  • Versões do Amazon RDS 5.7.23 e mais recentes, que são as compatíveis com o GTID

Arquitetura

Pilha de tecnologia de origem

  • Amazon RDS para MySQL

Pilha de tecnologias de destino

  • MySQL no Amazon EC2

Arquitetura de destino

Replicação GTID de um banco de dados RDS for MySQL para MySQL no Amazon EC2 na mesma sub-rede privada.

Ferramentas

Serviços da AWS

Outros serviços

  • GTIDs são identificadores exclusivos gerados para transações MySQL confirmadas.

  • O mysqldump é um utilitário cliente para realizar backups lógicos produzindo instruções SQL que podem ser executadas para reproduzir as definições do objeto do banco de dados de origem e os dados da tabela.

  • O mysql é o cliente de linha de comando para o MySQL.

Épicos

TarefaDescriçãoHabilidades necessárias

Crie a instância do RDS para MySQL.

Para criar a instância do RDS para MySQL, siga as etapas na documentação do Amazon RDS, usando os valores dos parâmetros abordados na próxima tarefa.

DBA, engenheiro DevOps

Ative as configurações relacionadas ao GTID no grupo de parâmetros do banco de dados.

Ative os parâmetros a seguir no grupo de parâmetros do banco de dados do Amazon RDS para MySQL.

Defina enforce_gtid_consistency para on e defina gtid-mode para on.

 

DBA

Reinicie a instância do Amazon RDS para MySQL.

É necessária uma reinicialização para que as alterações virem efetivas.

DBA

Crie um usuário e conceda a ele permissões de replicação.

Para instalar o MySQL, use os comandos a seguir.

CREATE USER 'repl'@'%' IDENTIFIED BY 'xxxx'; GRANT REPLICATION slave ON *.* TO 'repl'@'%' ; FLUSH PRIVILEGES;

 

DBA
TarefaDescriçãoHabilidades necessárias

Instale o MySQL no Amazon Linux

Para instalar o MySQL, use os comandos a seguir.

sudo yum update sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm sudo yum install mysql-community-server sudo systemctl start mysqld
DBA

Faça login no MySQL na instância do EC2 e crie o banco de dados.

O nome do banco de dados deve ser igual ao nome do banco de dados no Amazon RDS para MySQL. No exemplo a seguir, o nome do banco de dados é replication.

create database replication;
DBA

Edite o arquivo de configuração do MySQL e reinicie o banco de dados.

Edite o arquivo my.conf localizado em /etc/ adicionando os seguintes parâmetros.

server-id=3 gtid_mode=ON enforce_gtid_consistency=ON replicate-ignore-db=mysql binlog-format=ROW log_bin=mysql-bin

Depois reinicie o serviço mysqld.

systemctl mysqld restart
DBA
TarefaDescriçãoHabilidades necessárias

Exporte o dump de dados do banco de dados Amazon RDS para MySQL.

Para exportar o dump do Amazon RDS para o Amazon RDS para MySQL, use o comando a seguir.

mysqldump --single-transaction -h mydb.xxxxxxx.amazonaws.com -uadmin -p --databases replication > replication-db.sql
DBA

Restaure o arquivo de dump .sql no banco de dados MySQL no Amazon EC2.

Para importar o dump para o banco de dados MySQL no Amazon EC2, use o comando a seguir.

mysql -D replication -uroot -p < replication-db.sql
DBA

Configure o banco de dados MySQL no Amazon EC2 como uma réplica.

Para iniciar a replicação e verificar o status da replicação, faça login no banco de dados MySQL no Amazon EC2 e use o comando a seguir.

CHANGE MASTER TO MASTER_HOST="mydb.xxxxxxx.amazonaws.com", MASTER_USER="repl", MASTER_PASSWORD="rep123", MASTER_PORT=3306, MASTER_AUTO_POSITION = 1; START SLAVE; SHOW SLAVE STATUS\G
DBA

Recursos relacionados