Migrar de uma instância de banco de dados do RDS para MySQL para um cluster de banco de dados do Amazon Aurora MySQL usando uma réplica de leitura do Aurora
O Aurora usa a funcionalidade de replicação de log binário dos mecanismos de banco de dados MySQL para criar um tipo especial de cluster de banco de dados, chamado réplica de leitura do Aurora, para uma instância de banco de dados do RDS para MySQL. As atualizações feitas na instância de banco de dados do RDS para MySQL de origem são replicadas de forma assíncrona na réplica de leitura do Aurora.
Recomendamos usar essa funcionalidade para migrar de uma instância de banco de dados do RDS para MySQL para um cluster de banco de dados do Aurora MySQL criando uma réplica de leitura do Aurora da instância de banco de dados do RDS para MySQL de origem. Quando o atraso da réplica entre a instância de banco de dados do RDS para MySQL e a réplica de leitura do Aurora é 0, você pode direcionar aplicações clientes para a réplica de leitura do Aurora e interromper a replicação, a fim de que a réplica de leitura do Aurora se torne um cluster de banco de dados autônomo do Aurora MySQL. Prepare-se. A migração pode demorar um pouco. Estima-se várias horas por tebibyte (TiB) de dados.
Para obter uma lista de regiões onde o Aurora está disponível, consulte Amazon Aurora na Referência geral da AWS.
Quando você cria uma réplica de leitura do Aurora usando uma instância de banco de dados do RDS para MySQL, o Amazon RDS cria um snapshot de banco de dados da instância de banco de dados do RDS para MySQL de origem (privado para o Amazon RDS sem qualquer custo). Em seguida, o Amazon RDS migra os dados do snapshot do banco de dados para a réplica de leitura do Aurora. Depois que os dados do snapshot de banco de dados são migrados para o novo cluster de banco de dados do Aurora MySQL, o Amazon RDS inicia a replicação entre a instância de banco de dados do RDS para MySQL e o cluster de banco de dados do Aurora MySQL. Caso a instância de banco de dados do RDS para MySQL contenha tabelas que usam mecanismos de armazenamento diferentes do InnoDB ou que usam formato compacto de linha, você pode agilizar o processo de criação de uma réplica de leitura do Aurora. Para isso, basta alterar essas tabelas para que usem o mecanismo de armazenamento InnoDB e o formato dinâmico de linha antes de criar a réplica de leitura do Aurora. Para ter mais informações sobre o processo de cópia de um snapshot de banco de dados MySQL para um cluster de banco de dados do Aurora MySQL, consulte Migração de dados de um instância de banco de dados RDS para MySQL para um cluster de banco de dados do Amazon Aurora MySQL..
Você só pode ter uma réplica de leitura do Aurora para uma instância de banco de dados do MySQL.
nota
Podem ocorrer problemas de replicação devido a diferenças de recurso entre o Aurora MySQL e a versão do mecanismo de banco de dados do MySQL da instância de banco de dados do RDS para MySQL, que é a original da replicação. Se você encontrar um erro, tente obter ajuda no fórum da comunidade do Amazon RDS
Não será possível criar uma réplica de leitura do Aurora se a instância de banco de dados do RDS para MySQL já for a origem de uma réplica de leitura entre regiões.
Não é possível migrar de algumas versões anteriores a 8.0 do RDS para MySQL para o Aurora MySQL 3.05, incluindo 8.0.11, 8.0.13 e 8.0.15. Recomendamos que você atualize para a versão 8.0.28 do RDS pra MySQL antes da migração.
Para ter mais informações sobre réplicas de leitura do MySQL, consulte Como trabalhar com réplicas de leitura do MariaDB, do MySQL e de instâncias de banco de dados PostgreSQL.
Criar uma réplica de leitura do Aurora
Você pode criar uma réplica de leitura do Aurora para uma instância de banco de dados do RDS para MySQL usando o console, a AWS CLI ou a API do RDS.
Como criar uma réplica de leitura do Aurora usando uma instância de banco de dados de origem do RDS para MySQL
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados).
-
Escolha a instância de banco de dados MySQL que você deseja usar como a origem da réplica de leitura do Aurora.
-
Em Actions (Ações), selecione Create Aurora read replica (Criar réplica de leitura do Aurora).
-
Escolha as especificações do cluster de banco de dados que deseja usar para a réplica de leitura do Aurora, como descrito na tabela a seguir.
Opção Descrição Classe de instância de banco de dados
Escolha uma classe de instância de banco de dados que defina os requisitos de processamento e memória para a instância principal no cluster de banco de dados. Para ter mais informações sobre as opções de classe de instância de banco de dados, consulte Classes de instância de banco de dados do Amazon Aurora.
implantação multi-AZ
Escolha Criar réplica em diferentes zonas para criar uma réplica em espera do novo cluster de banco de dados em outra Zona de disponibilidade na região de destino da AWS para suporte a failover. Para ter mais informações sobre várias Zonas de disponibilidade, consulte Regiões e zonas de disponibilidade.
DB instance identifier
Digite um nome para a instância primária no seu cluster de banco de dados de réplica de leitura do Aurora. Esse identificador é usado no endereço do endpoint da instância principal do novo cluster de banco de dados.
O DB instance identifier tem as seguintes restrições:
-
Deve conter de 1 a 63 caracteres alfanuméricos ou hífens.
-
O primeiro caractere deve ser uma letra.
-
Não pode terminar com um hífen ou conter dois hifens consecutivos.
-
Deve ser exclusivo para todas as instâncias de banco de dados para cada conta da AWS por região da AWS.
Como o cluster de banco de dados da réplica de leitura do Aurora é criado de um snapshot da instância do banco de dados de origem, o nome de usuário principal e a senha principal para a réplica de leitura do Aurora são os mesmos nome e senha principais da instância do banco de dados de origem.
Virtual Private Cloud (VPC)
Selecione o VPC que hospeda o cluster de banco de dados. Selecione Create a new VPC (Criar uma VPC) para fazer com que o Aurora crie uma VPC para você. Para ter mais informações, consulte Pré-requisitos do cluster de banco de dados.
DB subnet group (Grupo de subredes do banco de dados)
Selecione o grupo de sub-rede de banco de dados para usar para o cluster de banco de dados. Selecione Create new DB subnet group (Criar grupo de sub-redes de banco de dados) para fazer com que o Aurora crie um grupo de sub-redes de banco de dados para você. Para ter mais informações, consulte Pré-requisitos do cluster de banco de dados.
Public accessibility
Selecione
Yes
para dar um endereço IP público ao cluster de banco de dados; do contrário, selecioneNo
. As instâncias no seu cluster de banco de dados podem ser uma combinação de instâncias de banco de dados públicas e privadas. Para ter mais informações sobre como ocultar instâncias do acesso público, consulte Ocultar um cluster de banco de dados em uma VPC da Internet.Availability zone
Determine se você deseja especificar uma Zona de disponibilidade específica. Para ter mais informações sobre zonas de disponibilidade, consulte Regiões e zonas de disponibilidade.
VPC security group (firewall) [Grupo de segurança da VPC (firewall)]
Selecione Create new VPC security group (Criar novo grupo de segurança de VPC) para fazer com que o Aurora crie um grupo de segurança de VPC para você. Selecione Select existing VPC security groups (Selecionar grupos de segurança de VPC existentes) para especificar um ou mais grupos de segurança de VPC e proteger o acesso de rede ao cluster de banco de dados. Para ter mais informações, consulte Pré-requisitos do cluster de banco de dados.
Porta de banco de dados
Especifique a porta que os aplicativos e os utilitários usam para acessar o banco de dados. Os clusters de banco de dados Aurora MySQL são definidos para a porta padrão do MySQL, 3306. Em algumas empresas, os firewalls bloqueiam conexões a esta porta. Se o firewall da sua empresa bloquear a porta padrão, escolha outra porta para o novo cluster de banco de dados.
Grupo de parâmetros de banco de dados
Selecione um grupo de parâmetros de banco de dados para o cluster de banco de dados do Aurora MySQL. O Aurora conta com um grupo de parâmetros de banco de dados padrão que você pode usar, ou é possível criar seu próprio grupo de parâmetros de banco de dados. Para ter mais informações sobre os parameter groups de banco de dados, consulte Grupos de parâmetros para Amazon Aurora.
Grupo de parâmetros do cluster de banco de dados
Selecione um grupo de parâmetros de cluster de banco de dados para o cluster de banco de dados do Aurora MySQL. O Aurora conta com um grupo de parâmetros de cluster de banco de dados que você pode usar, ou é possível criar seu próprio grupo de parâmetros. Para ter mais informações sobre os parameter groups do cluster de banco de dados, consulte Grupos de parâmetros para Amazon Aurora.
Criptografia
Escolha Disable encryption se você não quiser que seu novo cluster de banco de dados Aurora seja criptografado. Escolha Enable encryption para que o novo cluster de banco de dados Aurora seja criptografado em repouso. Se você selecionar Enable encryption (Habilitar criptografia), deverá escolher uma chave do KMS como o valor de AWS KMS key.
Se a sua instância de banco de dados MySQL não for criptografada, especifique uma chave de criptografia para criptografar seu cluster de banco de dados em repouso.
Se a sua instância de banco de dados MySQL for criptografada, especifique uma chave de criptografia para criptografar seu cluster de banco de dados em repouso usando-a. Você pode especificar a chave de criptografia usada pela instância de banco de dados MySQL ou por uma chave diferente. Você não pode criar um cluster de banco de dados não criptografado de uma instância de banco de dados MySQL criptografada.
Priority
Escolha uma prioridade de failover para o cluster de banco de dados. Se você não selecionar um valor, o padrão será tier-1. Essa prioridade determina a ordem em que as réplicas do Aurora são promovidas durante a recuperação de uma falha de instância primária. Para ter mais informações, consulte Tolerância a falhas para um cluster de banco de dados do Aurora.
Backup retention period (Período de retenção de backup)
Selecione o tempo, de 1 a 35 dias, que o Aurora retém cópias de backup do banco de dados. As cópias de backup podem ser usadas para restaurações point-in-time (PITR) do banco de dados, contabilizando até os segundos.
Monitoramento avançado
Escolha Enable enhanced monitoring (Habilitar monitoramento avançado) para habilitar a coleta de métricas em tempo real do sistema operacional em que o cluster de banco de dados é executado. Para ter mais informações, consulte Monitorar métricas do SO com o monitoramento avançado.
Monitoring Role (Monitoramento de perfis)
Disponível apenas quando Enhanced Monitoring estiver definido como Enable enhanced monitoring. Escolha a função do IAM que você criou para permitir que o Aurora se comunique com o Amazon CloudWatch Logs para você. Ou escolha Default (Padrão) para que o Aurora crie uma função para você chamada
rds-monitoring-role
. Para ter mais informações, consulte Monitorar métricas do SO com o monitoramento avançado.Granularity
Disponível apenas quando Enhanced Monitoring estiver definido como Enable enhanced monitoring. Defina o intervalo, em segundos, em que as métricas são coletadas para o seu cluster de banco de dados.
Atualização da versão secundária automática
Essa configuração não é aplicável aos clusters de banco de dados do Aurora MySQL.
Para ter mais informações sobre atualizações de mecanismos para o Aurora MySQL, consulte Atualizações do mecanismo de banco de dados Amazon Aurora MySQL.
Janela de manutenção
Selecione Select window e especifique o período semanal durante o qual a manutenção do sistema pode ser realizada. Ou selecione No preference (Sem preferência) para que o Aurora atribua um período aleatoriamente.
-
-
Escolha Create read replica (Criar réplica de leitura).
Para criar uma réplica de leitura do Aurora usando uma instância de banco de dados do MySQL de origem, use os comandos da create-db-cluster
e create-db-instance
da AWS CLI para criar um cluster de banco de dados do Aurora MySQL. Quando você chamar o comando create-db-cluster
, inclua o parâmetro --replication-source-identifier
para identificar o Amazon Resource Name (ARN – Nome de recurso da Amazon) da instância do banco de dados MySQL de origem. Para ter mais informações sobre ARNs do Amazon RDS, consulte Amazon Relational Database Service (Amazon RDS).
Não especifique o nome de usuário principal, a senha principal ou o nome do banco de dados já que a réplica de leitura do Aurora usa o mesmo nome de usuário principal, senha principal e nome de banco de dados que a instância de banco de dados do MySQL de origem.
Para Linux, macOS ou Unix:
aws rds create-db-cluster --db-cluster-identifier sample-replica-cluster --engine aurora \ --db-subnet-group-name mysubnetgroup --vpc-security-group-ids sg-c7e5b0d2 \ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:db:primary-mysql-instance
Para Windows:
aws rds create-db-cluster --db-cluster-identifier sample-replica-cluster --engine aurora ^ --db-subnet-group-name mysubnetgroup --vpc-security-group-ids sg-c7e5b0d2 ^ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:db:primary-mysql-instance
Se você usar o console para criar uma réplica de leitura do Aurora, o Aurora criará automaticamente a instância primária para a sua réplica de leitura do cluster de banco de dados do Aurora. Se você usar a AWS CLI para criar uma réplica de leitura do Aurora, deverá criar explicitamente a instância primária para o seu cluster de banco de dados. A instância principal é a primeira instância criada em um cluster de banco de dados.
Você pode criar uma instância primária para seu cluster de banco de dados usando o comando create-db-instance
da AWS CLI com os parâmetros a seguir.
-
--db-cluster-identifier
O nome de seu cluster de banco de dados.
-
--db-instance-class
O nome da classe da instância de banco de dados a ser usada para sua instância primária.
-
--db-instance-identifier
O nome da sua instância primária.
-
--engine aurora
Neste exemplo, você cria uma instância primária denominada myreadreplicainstance
para o cluster de banco de dados denominado myreadreplicacluster
usando a classe da instância de banco de dados especificada em myinstanceclass
.
exemplo
Para Linux, macOS ou Unix:
aws rds create-db-instance \ --db-cluster-identifier
myreadreplicacluster
\ --db-instance-classmyinstanceclass
\ --db-instance-identifiermyreadreplicainstance
\ --engine aurora
Para Windows:
aws rds create-db-instance ^ --db-cluster-identifier
myreadreplicacluster
^ --db-instance-classmyinstanceclass
^ --db-instance-identifiermyreadreplicainstance
^ --engine aurora
Para criar uma réplica de leitura do Aurora de uma instância de banco de dados do RDS para MySQL de origem, use os comandos CreateDBCluster
e CreateDBInstance
da API do Amazon RDS para criar um cluster de banco de dados do Aurora e uma instância primária. Não especifique o nome de usuário principal, a senha principal ou o nome do banco de dados, pois a réplica de leitura do Aurora usa o mesmo nome de usuário principal, senha principal e nome de banco de dados que a instância de banco de dados do RDS para MySQL de origem.
Você pode criar um cluster de banco de dados do Aurora para uma réplica de leitura do Aurora com base em uma instância de banco de dados do RDS para MySQL de origem usando o comando CreateDBCluster
da API do Amazon RDS com os seguintes parâmetros:
-
DBClusterIdentifier
O nome do cluster de banco de dados a ser criado.
-
DBSubnetGroupName
O nome do grupo de sub-redes de banco de dados a ser associado a esse cluster de banco de dados.
-
Engine=aurora
-
KmsKeyId
A AWS KMS key a ser usada para criptografar o cluster de banco de dados opcionalmente, de acordo com a criptografia da sua instância de banco de dados do MySQL.
-
Se a sua instância de banco de dados MySQL não for criptografada, especifique uma chave de criptografia para criptografar seu cluster de banco de dados em repouso. Caso contrário, seu cluster de banco de dados será criptografado em repouso usando a chave de criptografia padrão da sua conta.
-
Se a sua instância de banco de dados MySQL for criptografada, especifique uma chave de criptografia para criptografar seu cluster de banco de dados em repouso usando-a. Caso contrário, seu cluster de banco de dados será criptografado em repouso usando a chave de criptografia da instância de banco de dados MySQL.
nota
Você não pode criar um cluster de banco de dados não criptografado de uma instância de banco de dados MySQL criptografada.
-
-
ReplicationSourceIdentifier
O Nome de recurso da Amazon (ARN) para a instância de banco de dados MySQL de origem. Para ter mais informações sobre ARNs do Amazon RDS, consulte Amazon Relational Database Service (Amazon RDS).
-
VpcSecurityGroupIds
A lista de security groups de VPC do EC2 a ser associada a esse cluster de banco de dados.
Neste exemplo, você cria um cluster de banco de dados denominado myreadreplicacluster
de uma instância de banco de dados MySQL de origem com um ARN definido como mysqlprimaryARN
associado a um grupo do sub-redes de banco de dados denominado mysubnetgroup
, e um grupo de segurança da VPC denominado mysecuritygroup
.
exemplo
https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBCluster &DBClusterIdentifier=
myreadreplicacluster
&DBSubnetGroupName=mysubnetgroup
&Engine=aurora &ReplicationSourceIdentifier=mysqlprimaryARN
&SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &VpcSecurityGroupIds=mysecuritygroup
&X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20150927/us-east-1/rds/aws4_request &X-Amz-Date=20150927T164851Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=6a8f4bd6a98f649c75ea04a6b3929ecc75ac09739588391cd7250f5280e716db
Se você usar o console para criar uma réplica de leitura do Aurora, o Aurora criará automaticamente a instância primária para a sua réplica de leitura do cluster de banco de dados do Aurora. Se você usar a AWS CLI para criar uma réplica de leitura do Aurora, deverá criar explicitamente a instância primária para o seu cluster de banco de dados. A instância principal é a primeira instância criada em um cluster de banco de dados.
Você pode criar uma instância primária para seu cluster de banco de dados usando o comando CreateDBInstance
da API do Amazon RDS com os parâmetros a seguir:
-
DBClusterIdentifier
O nome de seu cluster de banco de dados.
-
DBInstanceClass
O nome da classe da instância de banco de dados a ser usada para sua instância primária.
-
DBInstanceIdentifier
O nome da sua instância primária.
-
Engine=aurora
Neste exemplo, você cria uma instância primária denominada myreadreplicainstance
para o cluster de banco de dados denominado myreadreplicacluster
usando a classe da instância de banco de dados especificada em myinstanceclass
.
exemplo
https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBInstance &DBClusterIdentifier=
myreadreplicacluster
&DBInstanceClass=myinstanceclass
&DBInstanceIdentifier=myreadreplicainstance
&Engine=aurora &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140424/us-east-1/rds/aws4_request &X-Amz-Date=20140424T194844Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=bee4aabc750bf7dad0cd9e22b952bd6089d91e2a16592c2293e532eeaab8bc77
Visualizar uma réplica de leitura do Aurora
Você pode visualizar as relações de replicação do MySQL para o Aurora MySQL de seus clusters de banco de dados do Aurora MySQL usando o AWS Management Console ou a AWS CLI.
Como visualizar a instância de banco de dados do MySQL para uma réplica de leitura do Aurora
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados).
-
Escolha o cluster de banco de dados da réplica de leitura do Aurora para exibir seus detalhes. As informações da instância do banco de dados MySQL primária estará no campo Replication source (Fonte de replicação).
Para visualizar as relações de replicação do MySQL com o Aurora MySQL para clusters de banco de dados Aurora MySQL utilizando a AWS CLI, use os comandos describe-db-clusters
e describe-db-instances
.
Para determinar qual instância de banco de dados MySQL é a primária, use o describe-db-clusters
e especifique o identificador do cluster de réplica de leitura do Aurora para a opção --db-cluster-identifier
. Consulte o elemento ReplicationSourceIdentifier
na saída para o ARN da instância de banco de dados que é a primária da replicação.
Para determinar qual cluster de banco de dados é a réplica de leitura do Aurora, use o describe-db-instances
e especifique o identificador da instância de banco de dados MySQL para a opção --db-instance-identifier
. Consulte o elemento ReadReplicaDBClusterIdentifiers
na saída para o identificador de cluster de banco de dados da réplica de leitura do Aurora.
exemplo
Para Linux, macOS ou Unix:
aws rds describe-db-clusters \ --db-cluster-identifier
myreadreplicacluster
aws rds describe-db-instances \ --db-instance-identifier
mysqlprimary
Para Windows:
aws rds describe-db-clusters ^ --db-cluster-identifier
myreadreplicacluster
aws rds describe-db-instances ^ --db-instance-identifier
mysqlprimary
Promover uma réplica de leitura do Aurora
Depois que a migração for concluída, você poderá promover a réplica de leitura do Aurora para um cluster de banco de dados autônomo usando o AWS Management Console ou a AWS CLI.
Depois, você poderá direcionar suas aplicações cliente ao endpoint para a réplica de leitura do Aurora. Para ter mais informações sobre os endpoints do Aurora, consulte Conexões de endpoints do Amazon Aurora. A promoção deve ser bem rápida. É possível fazer operações de leitura e gravação na réplica de leitura do Aurora durante a promoção. No entanto, você não pode excluir a instância primária do banco de dados MySQL ou desvincular a instância de banco de dados e a réplica de leitura do Aurora neste momento.
Antes de promover a sua réplica de leitura do Aurora interrompa quaisquer transações de gravação na instância do banco de dados MySQL de origem. Em seguida, aguarde que o atraso da réplica de leitura do Aurora chegue a 0. É possível visualizar o atraso da réplica para uma réplica de leitura do Aurora chamando o comando SHOW SLAVE STATUS
(Aurora MySQL versão 2) ou SHOW REPLICA STATUS
(Aurora MySQL versão 3) na sua réplica de leitura do Aurora. Verifique o valor Seconds behind master (Segundos atrás do mestre).
Você pode iniciar a gravação na réplica de leitura do Aurora depois que as transações de gravação para o primário tiverem parado e o atraso da réplica for 0. Se você gravar na réplica de leitura do Aurora antes disso e alterar as tabelas que também estão sendo modificadas no MySQL primário, você se arriscará a interromper a replicação para o Aurora. Se isso acontecer, você deve excluir e recriar sua réplica de leitura do Aurora.
Como promover uma réplica de leitura do Aurora a um cluster de bancos de dados Aurora
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados).
-
Escolha o cluster de banco de dados para a réplica de leitura do Aurora.
-
Em Actions (Ações), selecione Promote (Promover).
-
Escolha Promote read replica (Promover réplica de leitura).
Depois de promover, confirme se a promoção foi concluída usando o procedimento a seguir.
Para confirmar que a réplica de leitura do Aurora foi promovida
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, selecione Events.
-
Na página Eventos, verifique se há um evento do
Promoted Read Replica cluster to a stand-alone database cluster
para o cluster que você promoveu.
Depois que promoção estiver concluída, a instância do banco de dados MySQL primária e a réplica de leitura do Aurora serão desvinculados e, se desejar, você poderá excluir a instância de banco de dados com segurança.
Para promover uma réplica de leitura do Aurora a um cluster de banco de dados autônomo, use o comando promote-read-replica-db-cluster
da AWS CLI.
exemplo
Para Linux, macOS ou Unix:
aws rds promote-read-replica-db-cluster \ --db-cluster-identifier
myreadreplicacluster
Para Windows:
aws rds promote-read-replica-db-cluster ^ --db-cluster-identifier
myreadreplicacluster