

# 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.
<a name="AuroraMySQL.Migrating.RDSMySQL"></a>

É possível migrar (copiar) dados de um cluster de banco de dados do Amazon Aurora MySQL para uma instância de banco de dados do RDS para MySQL.

**Topics**
+ [Migrar de um snapshot do RDS for MySQL para o Aurora](AuroraMySQL.Migrating.RDSMySQL.Snapshot.md)
+ [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](AuroraMySQL.Migrating.RDSMySQL.Replica.md)

**nota**  
Como o Amazon Aurora MySQL é compatível com MySQL, você pode migrar dados do seu banco de dados MySQL configurando uma replicação entre o banco de dados MySQL e um cluster de banco de dados do Amazon Aurora MySQL. Para obter mais informações, consulte [Replicação com o Amazon Aurora](Aurora.Replication.md).

# Migrar de um snapshot do RDS for MySQL para o Aurora
<a name="AuroraMySQL.Migrating.RDSMySQL.Snapshot"></a>

Você pode migrar um snapshot de banco de dados de uma instância de banco de dados RDS for MySQL para criar um cluster de banco de dados Aurora MySQL. O novo cluster de banco de dados do Aurora MySQL é preenchido com os dados da instância de banco de dados RDS for MySQL original. O snapshot de banco de dados precisa ter sido criado de uma instância de banco de dados do Amazon RDS que esteja executando uma versão do MySQL compatível com o Aurora MySQL.

É possível migrar um snapshot de banco de dados manual ou automático. Após a criação do cluster de banco de dados, você pode criar réplicas opcionais do Aurora.

**nota**  
Você também pode migrar 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 sua instância de banco de dados do RDS para MySQL de origem. Para obter mais informações, consulte [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](AuroraMySQL.Migrating.RDSMySQL.Replica.md).  
Não é possível migrar de algumas versões anteriores a 8.0 do 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 MySQL antes da migração.

Veja as etapas gerais que você deve seguir:

1. Determine a quantidade de espaço para provisionar ao seu cluster de banco de dados Aurora MySQL. Para obter mais informações, consulte [De quanto espaço eu preciso?](#AuroraMySQL.Migrating.RDSMySQL.Space)

1. Use o console para criar o snapshot na região da AWS em que se encontra a instância MySQL do Amazon RDS. Para obter informações sobre a criação de um snapshot de banco de dados, consulte [Criar um snapshot de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).

1. Se o snapshot do banco de dados não estiver na mesma região da AWS que o cluster de banco de dados, use o console do Amazon RDS para copiar o snapshot do banco de dados para essa região da AWS. Para obter informações sobre a cópia de um snapshot de banco de dados, consulte [Cópia de um snapshot de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html).

1. Use o console para migrar o snapshot de banco de dados e criar um cluster de banco de dados Aurora MySQL com os mesmos bancos de dados que a instância de banco de dados MySQL original. 

**Atenção**  
O Amazon RDS limita cada conta da AWS a uma cópia de snapshot para cada região da AWS por vez.

## De quanto espaço eu preciso?
<a name="AuroraMySQL.Migrating.RDSMySQL.Space"></a>

Ao migrar um snapshot de uma instância de banco de dados MySQL para um cluster de banco de dados do Aurora MySQL, o Aurora usa um volume do Amazon Elastic Block Store (Amazon EBS) para formatar os dados do snapshot antes de migrá-los. Em alguns casos, um espaço adicional é necessário para formatar os dados para migração.

As tabelas que não sejam MyISAM e não estejam compactadas podem ter até 16 TB de tamanho. Se você tiver tabelas MyISAM, o Aurora deverá usar espaço adicional no volume para converter as tabelas e deixá-las compatíveis com o Aurora MySQL. Se você compactar as tabelas, o Aurora deverá usar espaço adicional no volume para expandi-las antes de armazená-las no volume de cluster do Aurora. Devido a esse requisito de espaço adicional, você deve garantir que nenhuma das tabelas MyISAM e das tabelas compactadas sendo migradas da sua instância de banco de dados MySQL exceda 8 TB de tamanho.

## Reduzir a quantidade de espaço necessário para migrar dados para o Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.RDSMySQL.PreImport"></a>

Talvez você queira modificar o esquema de banco de dados antes de migrá-lo para o Amazon Aurora. Essa modificação pode ser útil nos seguintes casos: 
+ Você deseja agilizar o processo de migração.
+ Você não sabe quanto espaço deve ser provisionado.
+ Você tentou migrar os dados e a migração falhou devido à falta de espaço provisionado.

É possível fazer as seguintes alterações para melhorar o processo de migração de um banco de dados para o Amazon Aurora.

**Importante**  
Lembre-se de realizar essas atualizações em uma nova instância de banco de dados restaurada do snapshot de um banco de dados de produção, em vez de em uma instância de produção. Em seguida, você poderá migrar os dados do snapshot da sua nova instância de banco de dados para o cluster de banco de dados do Aurora a fim de evitar interrupções no serviço do seu banco de dados de produção.


| Tipo de tabela | Limitação ou diretriz | 
| --- | --- | 
|  Tabelas MyISAM  |  O Aurora MySQL oferece suporte somente a tabelas InnoDB. Se houver tabelas MyISAM no seu banco de dados, elas deverão ser convertidas antes da migração para o Aurora MySQL. O processo de conversão exige espaço adicional para a conversão de MyISAM para InnoDB durante o procedimento de migração. Para reduzir as chances de ficar sem espaço ou para agilizar o processo de migração, converta todas as tabelas MyISAM para tabelas InnoDB antes de migrá-las. O tamanho da tabela InnoDB resultante é equivalente ao tamanho exigido pelo Aurora MySQL para aquela tabela. Para converter uma tabela MyISAM para InnoDB, execute o seguinte comando:  `alter table <schema>.<table_name> engine=innodb, algorithm=copy;`   | 
|  Tabelas compactadas  |  O Aurora MySQL não oferece suporte a tabelas compactadas (ou seja, tabelas criadas com `ROW_FORMAT=COMPRESSED`).  Para reduzir as chances de ficar sem espaço ou para agilizar o processo de migração, expanda suas tabelas compactadas definindo `ROW_FORMAT` como `DEFAULT`, `COMPACT`, `DYNAMIC` ou `REDUNDANT`. Para obter mais informações, consulte [Formatos de linha do InnoDB](https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format.html) na documentação do MySQL.  | 

Use o seguinte script SQL na sua instância de banco de dados MySQL existente para listar as tabelas no seu banco de dados que são MyISAM ou compactadas.

```
-- This script examines a MySQL database for conditions that block
-- migrating the database into Amazon Aurora.
-- It needs to be run from an account that has read permission for the
-- INFORMATION_SCHEMA database.

-- Verify that this is a supported version of MySQL.

select msg as `==> Checking current version of MySQL.`
from
  (
  select
    'This script should be run on MySQL version 5.6 or higher. ' +
    'Earlier versions are not supported.' as msg,
    cast(substring_index(version(), '.', 1) as unsigned) * 100 +
      cast(substring_index(substring_index(version(), '.', 2), '.', -1)
      as unsigned)
    as major_minor
  ) as T
where major_minor <> 506;


-- List MyISAM and compressed tables. Include the table size.

select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`,
round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)"
from INFORMATION_SCHEMA.TABLES
where
  ENGINE <> 'InnoDB'
  and
  (
    -- User tables
    TABLE_SCHEMA not in ('mysql', 'performance_schema',
                         'information_schema')
    or
    -- Non-standard system tables
    (
      TABLE_SCHEMA = 'mysql' and TABLE_NAME not in
        (
          'columns_priv', 'db', 'event', 'func', 'general_log',
          'help_category', 'help_keyword', 'help_relation',
          'help_topic', 'host', 'ndb_binlog_index', 'plugin',
          'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log',
          'tables_priv', 'time_zone', 'time_zone_leap_second',
          'time_zone_name', 'time_zone_transition',
          'time_zone_transition_type', 'user'
        )
    )
  )
  or
  (
    -- Compressed tables
       ROW_FORMAT = 'Compressed'
  );
```

O script gera uma saída semelhante à saída do seguinte exemplo. O exemplo mostra duas tabelas que devem ser convertidas de MyISAM para InnoDB. A saída também inclui o tamanho aproximado de cada tabela em megabytes (MB). 

```
+---------------------------------+------------------+
| ==> MyISAM or Compressed Tables | Approx size (MB) |
+---------------------------------+------------------+
| test.name_table                 |          2102.25 |
| test.my_table                   |            65.25 |
+---------------------------------+------------------+
2 rows in set (0.01 sec)
```

## Migrar um snapshot de banco de dados do RDS para MySQL para um cluster de banco de dados do Aurora MySQL
<a name="migrate-snapshot-ams-cluster"></a>

Você pode migrar um snapshot de banco de dados de uma instância de banco de dados do RDS para MySQL para criar um cluster de banco de dados do Aurora MySQL usando o Console de gerenciamento da AWS ou a AWS CLI. O novo cluster de banco de dados do Aurora MySQL é preenchido com os dados da instância de banco de dados RDS for MySQL original. Para obter informações sobre a criação de um snapshot de banco de dados, consulte [Criar um snapshot de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).

Se o snapshot do banco de dados não estiver na região da AWS em que você deseja colocar os seus dados, copie o snapshot do banco de dados para essa região da AWS. Para obter informações sobre a cópia de um snapshot de banco de dados, consulte [Cópia de um snapshot de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html).

### Console
<a name="AuroraMySQL.Migrating.RDSMySQL.Import.Console"></a>

Quando você migra o snapshot de banco de dados usando o Console de gerenciamento da AWS, o console realiza as ações necessárias para criar somente o cluster de banco de dados.

Também é possível determinar que o seu novo cluster de banco de dados do Aurora MySQL seja criptografado em repouso usando uma AWS KMS key.

**Para migrar um snapshot de banco de dados MySQL usando o Console de gerenciamento da AWS**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Comece a migração a partir da instância de banco de dados do MySQL ou do snapshot:

   Para iniciar a migração a partir da instância de banco de dados:

   1. No painel de navegação, selecione ** Databases (Bancos de dados)** e selecione a instância de banco de dados MySQL.

   1. Em **Actions (Ações)**, escolha **Migrate latest snapshot (Migrar o último snapshot)**.

   Para iniciar a migração a partir do snapshot:

   1. Escolha **Snapshots**.

   1. Na página **Snapshots**, escolha o snapshot que você deseja migrar para um cluster de banco de dados do Aurora MySQL.

   1. Escolha **Snapshot Actions (Ações do snapshot)** e, em seguida, escolha **Migrate Snapshot (Migrar snapshot)**.

   A página **Migrate Database (Migrar banco de dados)** é exibida.

1. Defina os seguintes valores na página **Migrate Database**:
   + **Migrate to DB Engine**: Selecione `aurora`.
   + **DB Engine Version (Versão do mecanismo de banco de dados)**: selecione a versão do mecanismo de banco de dados para o cluster de banco de dados do Aurora MySQL.
   + **DB Instance Class** (Classe de instância de banco de dados): selecione uma categoria de instância de banco de dados que tenha o armazenamento e a capacidade necessários para seu banco de dados, por exemplo `db.r3.large`. Os volumes de cluster do Aurora crescem automaticamente à medida em que aumenta a quantidade de dados em seu banco de dados. Um volume de cluster do Aurora pode aumentar até o tamanho máximo de 128 tebibytes (TiB). Assim, só será necessário selecionar uma classe de instância de banco de dados que atenda aos requisitos atuais de armazenamento. Para obter mais informações, consulte [Visão geral do armazenamento do Amazon Aurora](Aurora.Overview.StorageReliability.md#Aurora.Overview.Storage).
   + **Identificador da instância do banco de dados**: digite um nome para o cluster de banco de dados exclusivo à sua conta na região da AWS selecionada. Esse identificador é usado em endereços de endpoint para as instâncias no cluster de banco de dados. É possível optar por adicionar informações ao nome, como incluir a região da AWS e o mecanismo de banco de dados selecionados, por exemplo, **aurora-cluster1**.

     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 por conta do AWS, por região da AWS.
   + **Virtual Private Cloud (VPC) (Nuvem privada virtual)**: se você tiver uma VPC existente, poderá usá-la com o seu cluster de banco de dados do Aurora MySQL selecionando o identificador de VPC, por exemplo `vpc-a464d1c1`. Para obter informações sobre como criar uma VPC, consulte [Tutorial: Criar uma VPC para usar com um cluster de banco de dados (somente IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md).

     De outro modo, é possível optar para que o Aurora crie uma VPC para você selecionando **Create a new VPC (Criar uma VPC)**. 
   + **DB subnet group** (Grupo de sub-redes do banco de dados): se você tiver um grupo de sub-redes existente, poderá usá-lo com o cluster de banco de dados MySQL do Aurora selecionando o identificador do grupo de sub-redes, por exemplo, `gs-subnet-group1`.

     De outro modo, é possível optar para que o Aurora crie um grupo de sub-redes para você selecionando **Create a new subnet group (Criar um grupo de sub-redes)**. 
   + **Public accessibility**: selecione **No** para especificar que as instâncias no seu cluster de banco de dados só podem ser acessadas por recursos dentro da sua VPC. Selecione **Yes** para especificar que as instâncias no seu cluster de banco de dados podem ser acessadas por recursos na rede pública. O padrão é **Yes (Sim)**.
**nota**  
O cluster de banco de dados de produção talvez não precise estar em uma sub-rede pública, porque apenas os seus servidores de aplicativo precisarão acessá-lo. Se o cluster de banco de dados não precisar estar em uma sub-rede pública, defina **Publicly Accessible** como **No**.
   + **Availability Zone (Zona de disponibilidade)**: selecione a zona de disponibilidade para hospedar a instância primária do seu cluster de banco de dados Aurora MySQL. Para fazer com que o Aurora selecione uma zona de disponibilidade para você, escolha **No Preference (Sem preferência)**.
   + **Database Port (Porta de banco de dados)**: digite a porta padrão para ser usada ao se conectar a instâncias no cluster de banco de dados do Aurora MySQL. O padrão é `3306`.
**nota**  
Pode ser que haja um firewall corporativo que impeça o acesso a portas padrão, como a porta padrão do MySQL, 3306. Nesse caso, forneça um valor de porta permitido pelo seu firewall corporativo. Lembre-se desse valor de porta mais tarde ao se conectar ao cluster de banco de dados do Aurora MySQL.
   + **Encryption (Criptografia)**: selecione **Enable Encryption (Habilitar criptografia)** para que o novo cluster de banco de dados do Aurora MySQL 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 o seu snapshot de banco de dados não for criptografado, especifique uma chave de criptografia para criptografar seu cluster de banco de dados em repouso.

     Se o seu snapshot de banco de dados for criptografado, 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 pelo snapshot de banco de dados ou por uma chave diferente. Você não pode criar um cluster de banco de dados não criptografado de um snapshot de banco de dados criptografado.
   + **Auto Minor Version Upgrade (Atualização automática de versão secundária)**: essa configuração não se aplica aos clusters de banco de dados do Aurora MySQL.

     Para obter mais informações sobre atualizações de mecanismos para o Aurora MySQL, consulte [Atualizações do mecanismo de banco de dados Amazon Aurora MySQLSuporte de longo prazo (LTS) e versões beta do Amazon Aurora MySQL](AuroraMySQL.Updates.md).

1. Selecione **Migrate** para migrar o snapshot de banco de dados. 

1. Selecione **Instances** e o ícone de seta para mostrar os detalhes do cluster de banco de dados e monitorar o andamento da migração. Na página de detalhes, você vê o endpoint do cluster usado para se conectar à instância primária do cluster de banco de dados. Para obter mais informações sobre a conexão com um cluster de banco de dados do Aurora MySQL, consulte [Como conectar-se a um cluster de bancos de dados Amazon Aurora](Aurora.Connecting.md). 

### AWS CLI
<a name="USER_ImportAuroraCluster.CLI"></a>

Você pode criar um cluster de banco de dados do Aurora a partir de um snapshot de banco de dados de uma instância de banco de dados RDS for MySQL usando o [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) comando com os seguintes parâmetros:
+ `--db-cluster-identifier`: o nome do cluster de banco de dados a ser criado.
+ `--engine aurora-mysql`: para um cluster de banco de dados compatível com o MySQL 5.7 ou 8.0.
+ `--kms-key-id`: a AWS KMS key para criptografar opcionalmente o cluster de banco de dados, de acordo com a criptografia do seu snapshot de banco de dados.
  + Se o seu snapshot de banco de dados não for criptografado, especifique uma chave de criptografia para criptografar seu cluster de banco de dados em repouso. Caso contrário, seu cluster de banco de dados não será criptografado.
  + Se o seu snapshot de banco de dados for criptografado, 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 do snapshot de banco de dados.
**nota**  
Você não pode criar um cluster de banco de dados não criptografado de um snapshot de banco de dados criptografado.
+ `--snapshot-identifier` – O nome do recurso da Amazon (ARN) do snapshot do banco de dados a ser migrado. Para obter mais informações sobre ARNs do Amazon RDS, consulte [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds).

Quando você migra o snapshot de banco de dados usando o comando `RestoreDBClusterFromSnapshot`, o comando cria o cluster de banco de dados e a instância primária.

Neste exemplo, você cria um cluster de banco de dados compatível com o MySQL 5.7, denominado *mydbcluster*, de um snapshot de banco de dados com um ARN definido como *mydbsnapshotARN*.

Para Linux, macOS ou Unix:

```
aws rds restore-db-cluster-from-snapshot \
    --db-cluster-identifier mydbcluster \
    --snapshot-identifier mydbsnapshotARN \
    --engine aurora-mysql
```

Para Windows:

```
aws rds restore-db-cluster-from-snapshot ^
    --db-cluster-identifier mydbcluster ^
    --snapshot-identifier mydbsnapshotARN ^
    --engine aurora-mysql
```

Neste exemplo, você cria um cluster de banco de dados compatível com o MySQL 5.7, denominado *mydbcluster*, de um snapshot de banco de dados com um ARN definido como *mydbsnapshotARN*.

Para Linux, macOS ou Unix:

```
aws rds restore-db-cluster-from-snapshot \
    --db-cluster-identifier mydbcluster \
    --snapshot-identifier mydbsnapshotARN \
    --engine aurora-mysql
```

Para Windows:

```
aws rds restore-db-cluster-from-snapshot ^
    --db-cluster-identifier mydbcluster ^
    --snapshot-identifier mydbsnapshotARN ^
    --engine aurora-mysql
```

# 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
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica"></a>

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](https://docs.aws.amazon.com/general/latest/gr/rande.html#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.](AuroraMySQL.Migrating.RDSMySQL.md).

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](https://forums.aws.amazon.com/forum.jspa?forumID=60) ou entre em contato com o AWS Support.  
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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html).

## Criar uma réplica de leitura do Aurora
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create"></a>

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.

### Console
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create.Console"></a>

**Como criar uma réplica de leitura do Aurora usando uma instância de banco de dados de origem do RDS para MySQL**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**. 

1. Escolha a instância de banco de dados MySQL que você deseja usar como a origem da réplica de leitura do Aurora.

1. Em **Actions (Ações)**, selecione **Create Aurora read replica (Criar réplica de leitura do Aurora)**.

1. 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.     
<a name="aurora_read_replica_param_advice"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Replica.html)

1. Escolha **Create read replica (Criar réplica de leitura)**.

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create.CLI"></a>

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 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) e [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 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)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-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 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 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*.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds create-db-instance \
    --db-cluster-identifier myreadreplicacluster \
    --db-instance-class myinstanceclass \
    --db-instance-identifier myreadreplicainstance \
    --engine aurora
```
Para Windows:  

```
aws rds create-db-instance ^
    --db-cluster-identifier myreadreplicacluster ^
    --db-instance-class myinstanceclass ^
    --db-instance-identifier myreadreplicainstance ^
    --engine aurora
```

### API do RDS
<a name="Aurora.Migration.RDSMySQL.Create.API"></a>

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 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) e [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 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 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 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)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-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*.

**Example**  

```
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 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 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*.

**Example**  

```
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
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View"></a>

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 Console de gerenciamento da AWS ou a AWS CLI.

### Console
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View.Console"></a>

**Como visualizar a instância de banco de dados do MySQL para uma réplica de leitura do Aurora**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**. 

1. 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)**.  
![\[Visualizar MySQL primário\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/images/aurora-repl6.png)

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View.CLI"></a>

Para visualizar as relações de replicação do MySQL com o Aurora MySQL para clusters de banco de dados do Aurora MySQL utilizando a AWS CLI, use os comandos [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) e [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html). 

Para determinar qual instância de banco de dados MySQL é a primária, use o [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 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 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 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. 

**Example**  
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
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote"></a>

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 Console de gerenciamento da AWS 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](Aurora.Overview.Endpoints.md). 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.

### Console
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote.Console"></a>

**Como promover uma réplica de leitura do Aurora a um cluster de bancos de dados Aurora**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha o cluster de banco de dados para a réplica de leitura do Aurora.

1. Em **Actions (Ações)**, selecione **Promote (Promover)**.

1. 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**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, selecione **Events**.

1. 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.

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote.CLI"></a>

Para promover uma réplica de leitura do Aurora a um cluster de banco de dados autônomo, use o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html) da AWS CLI. 

**Example**  
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
```