Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Como usar logs binários de uma instância de banco de dados ativa do Amazon RDS para MySQL para replicar em um servidor de standby on-premises?
Quero replicar uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para MySQL em um servidor de standby on-premises.
Breve descrição
Para migrar dados de uma instância de banco de dados do Amazon RDS para MySQL para um servidor on-premises, crie uma réplica de leitura na AWS. Em seguida, altere o destino de replicação da réplica de leitura do Amazon RDS para MySQL para o servidor on-premises.
Se você usa a replicação baseada no identificador de transação global (GTID), consulte Configurar a replicação da posição do arquivo de log binário com uma instância de origem externa.
Resolução
Criar uma réplica de leitura da instância de banco de dados ativa
Conclua as etapas a seguir:
-
Confirme se você ativou os backups automatizados para a instância de banco de dados ativa que deseja replicar.
Observação: o período mínimo de retenção de backup é de 1 dia. Ao fazer backup dos seus dados, você incorre em custos adicionais. Para mais informações, consulte Preços do Amazon RDS. -
Crie uma réplica de leitura da instância de banco de dados ativa com a mesma configuração.
-
Faça login na instância de banco de dados de réplica de leitura.
-
Execute o comando a seguir para confirmar se a instância de banco de dados de réplica de leitura corresponde à sua instância de banco de dados ativa.
Para MySQL versão 8.0.23 e posterior:mysql> show replica status \GPara MySQL versão anterior a 8.0.23:
mysql> show slave status \GObservação: quando a instância de réplica não fica atrás da sua instância de banco de dados, o parâmetro Seconds_Behind_Master é exibido como 0.
-
Execute o comando a seguir para interromper a replicação na instância de banco de dados de réplica de leitura:
mysql> call mysql.rds_stop_replication; -
Para registrar os parâmetros -log_file e -log_position, execute o seguinte comando na instância de banco de dados de réplica de leitura.
Para MySQL versão 8.0.23 e posterior:mysql> show replica status \GPara MySQL versão anterior a 8.0.23:
mysql> show slave status \GObservação: -log_file é o valor de relay_source_log_file e -log_position é o valor de exec_source_log_pos.
Crie um arquivo de descarte da instância de banco de dados de réplica de leitura
Conclua as etapas a seguir:
-
Execute o comando a seguir no cliente mysqldump ou em um utilitário similar para criar um backup da instância de banco de dados de réplica de leitura:
mysqldump -h hostname -u username -p dbname > backup_file_name.sql -
Faça login no servidor on-premises e transfira o arquivo de descarte para o servidor.
Restaurar o arquivo de descarte para a nova instância de banco de dados
Conclua as etapas a seguir:
-
Crie uma nova instância de banco de dados externa no servidor on-premises.
-
Execute o comando a seguir para restaurar o arquivo de descarte na nova instância de banco de dados externa:
mysql -h hostname -u username -p dbname < backup_file_name.sql -
Faça login na sua instância de banco de dados ativa.
-
Execute o comando a seguir para configurar um usuário de replicação e conceder as permissões necessárias ao usuário:
mysql> create user repl_user@'%' identified by 'repl_user'; mysql> grant replication slave, replication client on *.* to repl_user@'%'; mysql> show grants for repl_user@'%';Observação: substitua repl_user pelo seu nome de usuário de replicação.
-
Faça login na nova instância de banco de dados externa e, em seguida, interrompa o servidor on-premises.
-
Modifique os parâmetros do arquivo my.cnf para apontar para o ID exclusivo do servidor e o nome do banco de dados que você deseja replicar. Por exemplo, server_id=2 e replicate-do-db=test.
-
Salve o arquivo.
-
Reinicie o servidor on-premises.
Confirme se a nova instância de banco de dados externa pode se conectar à instância de banco de dados ativa
Se você usa o Amazon Elastic Compute Cloud (Amazon EC2) como uma instância externa do MySQL, atualize sua instância para permitir conexões do grupo de segurança. Ou permita conexões do endereço IP no grupo de segurança da sua instância de banco de dados ativa. Se você usa um servidor MySQL externo, execute telnet para testar a conectividade. Para mais informações, consulte Por que não consigo me conectar à minha instância de banco de dados do Amazon RDS?
Conclua as etapas a seguir:
- Para alterar os parâmetros que o servidor de réplica usa para se conectar à origem, execute o comando a seguir na nova instância de banco de dados externa.
Para MySQL versão 8.0.23 e posterior:
Para MySQL versão anterior a 8.0.23:mysql> change replication source to source_host='rds-endpoint', source_user='repl_user', source_password='password', source_log_file='mysql-bin.000001', source_log_pos=107;
Observação: substitua rds-endpoint pelo endpoint da sua instância de banco de dados ativa. Use o nome de usuário e a senha que você criou ao restaurar o arquivo de descarte no novo banco de dados. Substitua os valores relay_source_file e exec_source_log_pos pelos valores -log_file e -log_position da réplica de leitura.mysql> change master to master_host='rds-endpoint', master_user='repl_user', master_password='password', master_log_file='mysql-bin.000001', master_log_pos=107; - Confirme se o servidor on-premises pode se conectar à sua instância de banco de dados ativa.
Inicie a replicação
Conclua as etapas a seguir:
-
Faça login no servidor on-premises.
-
Execute o comando a seguir para iniciar a replicação:
Para MySQL versão 8.0.23 e posterior:mysql> start replica;Para MySQL versão anterior a 8.0.23:
mysql> start slave; -
Execute o comando a seguir para verificar se a replicação está sincronizada entre sua instância de banco de dados ativa e o servidor on-premises:
Para MySQL versão 8.0.23 e posterior:mysql> show replica status\GPara MySQL versão anterior a 8.0.23:
mysql> show slave status\G -
Quando o parâmetro Seconds_Behind_Master for igual a 0, exclua a instância de banco de dados de réplica de leitura.
Informações relacionadas
Exportar dados de uma instância de banco de dados MySQL usando replicação
- Idioma
- Português

Conteúdo relevante
- feita há 10 meses
- feita há 8 meses
- feita há 10 meses