

# Usar uma réplica de leitura para reduzir o tempo de inatividade ao atualizar um banco de dados do RDS para MySQL
<a name="USER_UpgradeDBInstance.MySQL.ReducedDowntime"></a>

Na maioria dos casos, uma implantação azul/verde é a melhor opção para reduzir o tempo de inatividade ao atualizar uma instância de banco de dados MySQL. Para ter mais informações, consulte [Usar implantações azul/verde do Amazon RDS para atualizações de banco de dados](blue-green-deployments.md). 

Se não for possível usar uma implantação azul/verde e se sua instância de banco de dados MySQL estiver em uso com uma aplicação de produção, você poderá usar o procedimento a seguir para atualizar a versão de banco de dados da sua instância de banco de dados. Esse procedimento pode reduzir o tempo de inatividade do seu aplicativo. 

Usando uma réplica de leitura, você pode executar a maioria das etapas de manutenção antes do tempo e minimizar as alterações necessárias durante a interrupção real. Com essa técnica, você pode testar e preparar a nova instância de banco de dados sem fazer alterações em sua instância de banco de dados existente.

O procedimento a seguir mostra um exemplo de atualização do MySQL versão 5.7 para o MySQL versão 8.0. Você pode usar as mesmas etapas gerais nas atualizações para outras versões principais. Você pode usar as mesmas etapas gerais nas atualizações para outras versões principais.

**nota**  
Quando você estiver atualizando do MySQL versão 5.7 para o MySQL versão 8.0 ou do MySQL versão 8.0 para o MySQL versão 8.4, conclua as pré-verificações antes de executar a atualização. Para ter mais informações, consulte [Pré-verificações de upgrades do MySQL 5.7 a 8.0](USER_UpgradeDBInstance.MySQL.Major.md#USER_UpgradeDBInstance.MySQL.57to80Prechecks) e [Pré-verificações de atualizações do MySQL 8.0 para 8.4](USER_UpgradeDBInstance.MySQL.Major.md#USER_UpgradeDBInstance.MySQL.80to84Prechecks).

**Como atualizar um banco de dados MySQL enquanto uma instância de banco de dados está em uso**

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. Crie uma réplica de leitura da instância de banco de dados MySQL 5.7. Esse processo cria uma cópia atualizável do seu banco de dados. Outras réplicas de leitura da instância de banco de dados também podem existir.

   1. No console, escolha **Databases (Bancos de dados)** e depois escolha a instância de banco de dados que você deseja atualizar.

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

   1. Forneça o valor do **DB instance identifier (Identificador de instância de banco de dados)** para a réplica de leitura e verifique se a **DB instance class (Classe da instância de banco de dados)** e as outras configurações correspondem à instância de banco de dados MySQL 5.7.

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

1. (Opcional) Quando a réplica de leitura for criada e **Status** for exibida **Available (Disponível)**, converta a réplica de leitura em uma implantação multi-AZ e ative backups.

   Por padrão, uma réplica de leitura é criada com backups desabilitados. Como a réplica de leitura se torna a instância de banco de dados de produção, uma prática recomendada é configurar uma implantação multi-AZ e habilitar backups.

   1. No console, selecione **Databases (Bancos de dados)** e a réplica de leitura que você acabou de criar.

   1. Selecione **Modify**.

   1. Para **Multi-AZ deployment (Implantação multi-AZ)**, escolha **Create a standby instance (Criar uma instância em espera)**.

   1. Em **Backup Retention Period** (Período de retenção de backup), escolha um valor positivo diferente de zero, como 3 dias, depois selecione **Continue** (Continuar).

   1. Em **Scheduling of modifications (Programação de modificações)**, selecione **Apply immediately (Aplicar imediatamente)**.

   1. Selecione **Modify DB instance (Modificar instância de banco de dados)**.

1. Quando o **Status** da réplica de leitura mostrar **Available (Disponível)**, atualize a réplica de leitura para o MySQL 8.0:

   1. No console, selecione **Databases (Bancos de dados)** e a réplica de leitura que você acabou de criar.

   1. Selecione **Modify**.

   1. Em **DB engine version (Versão do mecanismo de banco de dados)**, selecione a versão do MySQL 8.0 para a qual atualizar e, em seguida, selecione **Continue (Continuar)**.

   1. Em **Scheduling of modifications (Programação de modificações)**, selecione **Apply immediately (Aplicar imediatamente)**.

   1. Selecione **Modify DB instance (Modificar instância de banco de dados)** para iniciar a atualização. 

1. Quando a atualização for concluída e o **Status** mostrar **Disponível**, verifique se a réplica de leitura foi atualizada com a instância de banco de dados MySQL 5.7 de origem. Para verificar, conecte-se à réplica de leitura e execute o comando `SHOW REPLICA STATUS`. Se o campo `Seconds_Behind_Master` for `0`, a replicação está atualizada.
**nota**  
As versões anteriores do MySQL usavam `SHOW SLAVE STATUS` em vez de `SHOW REPLICA STATUS`. Se você estiver usando uma versão do MySQL anterior à 8.0.23, use `SHOW SLAVE STATUS`. 

1. (Opcional) Crie uma réplica de leitura da réplica de leitura.

   Se você quiser que a instância de banco de dados tenha uma réplica de leitura depois que ela for promovida para uma instância de banco de dados autônoma, você pode criar a réplica de leitura agora.

   1. No console, selecione **Databases (Bancos de dados)** e selecione a réplica de leitura que você acabou de atualizar.

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

   1. Forneça o valor do **DB instance identifier (Identificador de instância de banco de dados)** para a réplica de leitura e verifique se a **DB instance class (Classe da instância de banco de dados)** e as outras configurações correspondem à instância de banco de dados MySQL 5.7.

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

1. (Opcional) Configure um grupo de parâmetros de banco de dados personalizado para a réplica de leitura.

   Se você quiser que a instância de banco de dados use um grupo de parâmetros personalizado depois de ser promovida para uma instância de banco de dados autônoma, poderá criar o grupo de parâmetros de banco de dados agora pode associá-lo à réplica de leitura.

   1. Crie um grupo de parâmetros de banco de dados personalizado para o MySQL 8.0. Para obter instruções, consulte [Criar um grupo de parâmetros de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Creating.md).

   1. Modifique os parâmetros que você deseja alterar no grupo de parâmetros de banco de dados que você acabou de criar. Para obter instruções, consulte [Modificar parâmetros em um grupo de parâmetros de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

   1. No console, selecione **Databases (Bancos de dados)** e a réplica de leitura.

   1. Selecione **Modify**.

   1. Para o **DB parameter group (Grupo de parâmetros do banco de dados)**, escolha o grupo de parâmetros do banco de dados MySQL 8.0 que você acabou de criar e, em seguida, escolha **Continue (Continuar)**.

   1. Em **Scheduling of modifications (Programação de modificações)**, selecione **Apply immediately (Aplicar imediatamente)**.

   1. Selecione **Modify DB instance (Modificar instância de banco de dados)** para iniciar a atualização. 

1. Torne sua réplica de leitura MySQL 8.0 uma instância de banco de dados autônoma. 
**Importante**  
Quando você promove a réplica de leitura do MySQL 8.0 para uma instância de banco de dados autônoma, ela deixa de ser uma réplica da instância de banco de dados MySQL 5.7. Recomendamos que você promova a replica de leitura do MySQL 8.0 durante uma janela de manutenção, quando a instância de banco de dados MySQL 5.7 estiver no modo somente leitura e todas as operações de gravação estiverem suspensas. Quando a promoção terminar, você poderá direcionar suas operações de gravação para a instância de banco de dados MySQL 8.0 atualizada, para garantir que nenhuma operação de gravação seja perdida.  
Além disso, recomendamos que, antes de promover a réplica de leitura do MySQL 8.0, você realize todas as operações de DDL (linguagem de definição de dados) necessárias na réplica de leitura do MySQL 8.0. Um exemplo é a criação de índices. Essa abordagem evita efeitos negativos sobre a performance da réplica de leitura do MySQL 8.0 após a sua promoção. Para promover uma réplica de leitura, use o procedimento a seguir.

   1. No console, selecione **Databases (Bancos de dados)** e selecione a réplica de leitura que você acabou de atualizar.

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

   1. Selecione **Yes (Sim)** para habilitar backups automatizados da instância da réplica de leitura. Para obter mais informações, consulte [Introdução aos backups](USER_WorkingWithAutomatedBackups.md).

   1. Escolha **Continue**.

   1. Escolha **Promote Read Replica (Promover réplica de leitura)**.

1. Agora, você possui uma versão atualizada do seu banco de dados MySQL. Neste ponto, você pode direcionar as aplicações para a nova instância de banco de dados MySQL 8.0.