Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Configurar a replicação da posição do arquivo de log binário com uma instância de origem externa

Modo de foco
Configurar a replicação da posição do arquivo de log binário com uma instância de origem externa - Amazon Relational Database Service

É possível configurar a replicação entre uma instância de banco de dados do RDS para MySQL ou do MariaDB e uma instância do MySQL ou do MariaDB externa ao Amazon RDS usando a replicação de arquivos de log binários.

Antes de começar

Você pode configurar a replicação usando a posição do arquivo de log binário de transações replicadas.

As permissões necessárias para iniciar a replicação em uma instância de banco de dados do Amazon RDS são restritas e não estão disponíveis ao seu usuário mestre do Amazon RDS. Por isso, use os comandos mysql.rds_set_external_master (RDS para MariaDB e RDS para MySQL versões principais 8.0 e anteriores) ou mysql.rds_set_external_source (RDS para MySQL versões principais 8.4 e posteriores) e mysql.rds_start_replication do Amazon RDS para configurar a replicação entre seu banco de dados on-line e seu banco de dados do Amazon RDS.

Para definir o formato de registro em log binário para um banco de dados MySQL e MariaDB, atualize o parâmetro binlog_format. Se a instância de banco de dados usar o grupo de parâmetros da instância de banco de dados padrão, crie um novo grupo de parâmetros de banco de dados para modificar o parâmetro binlog_format. No MariaDB e no MySQL 8.0 e versões anteriores, binlog_format tem como padrão MIXED. No entanto, você também pode definir o binlog_format como ROW ou STATEMENT se precisar de um formato específico de log binário (binlog). Reinicie a instância de banco de dados para que a alteração entre em vigor. No MySQL 8.4 e versões superiores, binlog_format tem como padrão ROW.

Para obter informações sobre como definir o parâmetro binlog_format, consulte Configurar o registro em log binário do RDS para MySQL. Para obter informações sobre as implicações de tipos de replicação do MySQL diferentes, consulte Vantagens e desvantagens da replicação baseada em instrução e baseada em linha na documentação do MySQL.

Configurar a replicação da posição do arquivo de log binário com uma instância de origem externa

Siga estas diretrizes ao configurar uma instância de origem externa e uma réplica no Amazon RDS:

  • Monitore eventos de failover para a instância do banco de dados do Amazon RDS, que é sua réplica. Se ocorrer um failover, a instância de banco de dados que for a sua réplica poderá ser recriada em um novo host com um endereço de rede diferente. Para obter informações sobre como monitorar eventos de failover, consulte Trabalhar com a notificação de eventos do Amazon RDS.

  • Retenha os logs binários na instância de origem até confirmar que eles foram aplicados à réplica. Esta manutenção garante que seja possível restaurar sua instância de origem em caso de falha.

  • Ative backups automatizados na sua instância de banco de dados do Amazon RDS. Ativar backups automáticos garante que seja possível restaurar sua réplica para um determinado ponto no tempo, caso seja necessário ressincronizar sua instância de origem e sua réplica. Para obter informações sobre backups e restauração Point-In-Time, consulte Backup, restauração e exportação de dados.

Como configurar a replicação do arquivo de log binário com uma instância de origem externa
  1. Torne a instância de origem MySQL ou MariaDB somente leitura.

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Execute o comando SHOW MASTER STATUS na instância do MySQL ou MariaDB de origem para determinar a localização do log binário.

    Você recebe um resultado semelhante ao seguinte exemplo.

    File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
  3. Copie o banco de dados da instância externa para a instância de banco de dados do Amazon RDS usando mysqldump. Para bancos de dados muito grandes, convém usar o procedimento em Importar dados para um banco de dados do Amazon RDS para MySQL com tempo de inatividade reduzido.

    Para Linux, macOS ou Unix:

    mysqldump --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -u local_user \ -plocal_password | mysql \ --host=hostname \ --port=3306 \ -u RDS_user_name \ -pRDS_password

    Para Windows:

    mysqldump --databases database_name ^ --single-transaction ^ --compress ^ --order-by-primary ^ -u local_user ^ -plocal_password | mysql ^ --host=hostname ^ --port=3306 ^ -u RDS_user_name ^ -pRDS_password
    nota

    Confirme que não há um espaço entre a opção -p e a senha inserida.

    Para especificar o nome do host, o nome do usuário, a porta e a senha para se conectar à instância de banco de dados Amazon RDS, use as opções --host, --user (-u), --port e -p no comando mysql. O nome do host é o nome do Serviço de Nome de Domínio (DNS) do endpoint da instância de banco de dados do Amazon RDS, por exemplo, myinstance.123456789012.us-east-1.rds.amazonaws.com. Você pode encontrar o valor do endpoint nos detalhes da instância no AWS Management Console.

  4. Torne a instância MySQL ou MariaDB de origem novamente gravável.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;

    Para obter mais informações sobre como fazer backups para usar com a replicação, consulte a documentação do MySQL.

  5. No AWS Management Console, adicione o endereço IP do servidor que hospeda o banco de dados externo ao grupo de segurança da nuvem privada virtual (VPC) para a instância de banco de dados Amazon RDS. Para obter mais informações sobre como modificar um grupo de segurança da VPC, consulte Grupos de segurança para a VPC no Guia do usuário da Amazon Virtual Private Cloud.

    O endereço IP poderá ser alterado se as seguintes condições forem atendidas:

    • Se você estiver usando um endereço IP público para a comunicação entre a instância de origem externa e a instância de banco de dados.

    • A instância de origem externa foi interrompida e reiniciada.

    Se essas condições forem atendidas, verifique o endereço IP antes de adicioná-lo.

    Você também pode precisar configurar a rede local para permitir conexões com o endereço IP da instância de banco de dados do Amazon RDS. Isso é realizado para que a rede local consiga se comunicar com a instância do MySQL ou do MariaDB externa. Para localizar o endereço IP da instância de banco de dados do Amazon RDS, use o comando host.

    host db_instance_endpoint

    O nome do host é o nome de DNS do endpoint da instância de banco de dados do Amazon RDS.

  6. Usando o cliente de sua preferência, conecte-se à instância externa e crie um usuário a ser usado para a replicação. Use essa conta unicamente para replicação e restrinja-a ao seu domínio para melhorar a segurança. Veja um exemplo a seguir.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
    nota

    Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

  7. Para a instância externa, conceda os privilégios REPLICATION CLIENT e REPLICATION SLAVE para seu usuário de replicação. Por exemplo, para conceder os privilégios de REPLICATION CLIENT e REPLICATION SLAVE em todos os bancos de dados para o usuário 'repl_user' de seu domínio, emita o seguinte comando.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
  8. Transforma a instância de banco de dados do Amazon RDS na réplica. Para fazer isso, primeiro se conecte à instância de banco de dados do Amazon RDS como usuário mestre. Depois disso, identifique o banco de dados MySQL ou MariaDB externo como a instância de origem usando o comando mysql.rds_set_external_source (RDS para MySQL versões principais 8.4 e posteriores) ou mysql.rds_set_external_master (RDS para MariaDB e RDS para MySQL versões principais 8.0 e anteriores). Use o nome do arquivo de log mestre e a posição do log mestre que você determinou na etapa 2. Os comandos a seguir são exemplos.

    MySQL 8.4

    CALL mysql.rds_set_external_source ('mysourceserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);

    MariaDB e MySQL 8.0 e 5.7

    CALL mysql.rds_set_external_master ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);
    nota

    No RDS para MySQL, é possível optar por usar a replicação atrasada executando o procedimento armazenado mysql.rds_set_external_source_with_delay (RDS para MySQL versões principais 8.4 e superiores) ou mysql.rds_set_external_master_with_delay (RDS para MariaDB e RDS para MySQL versões principais 8.0 e anteriores). No RDS para MySQL, um motivo para usar a replicação atrasada é ativar a recuperação de desastres com o procedimento armazenado mysql.rds_start_replication_until. Atualmente, o RDS para MariaDB é compatível com a replicação atrasada, mas não com o procedimento mysql.rds_start_replication_until.

  9. Na instância de banco de dados do Amazon RDS, emita o comando mysql.rds_start_replication para iniciar a replicação.

    CALL mysql.rds_start_replication;
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.