

# Atualizar a versão de mecanismo de uma instância de banco de dados
<a name="USER_UpgradeDBInstance.Upgrading"></a>

O Amazon RDS fornece versões mais recentes de cada mecanismo de banco de dados com suporte, para que você possa manter em estado atualizado sua instância de banco de dados. Entre as versões mais novas podem estar correções de bugs, melhorias de segurança e outros aprimoramentos para o mecanismo de banco de dados. Quando o Amazon RDS oferecer suporte a uma nova versão de um mecanismo de banco de dados, escolha como e quando fazer upgrade de instâncias de banco de dados.

Há dois tipos de atualizações: atualizações de versão principal e atualizações de versão secundária. Em geral, uma *atualização da versão do mecanismo principal* pode apresentar alterações não compatíveis com aplicativos existentes. Por outro lado, uma *atualização da versão secundária* inclui apenas alterações compatíveis com versões anteriores dos aplicativos existentes.

Com relação a clusters de banco de dados multi-AZ, as atualizações de versão principal são comportadas apenas pelo RDS para PostgreSQL. As atualizações de versão secundária são comportadas por todos os mecanismos compatíveis com clusters de banco de dados multi-AZ. Para obter mais informações, consulte [Atualização da versão de mecanismo de um cluster de banco de dados multi-AZ para o Amazon RDS](multi-az-db-clusters-upgrading.md).

A sequência de numeração da versão é específica de cada mecanismo de banco de dados. Por exemplo, RDS for MySQL 5.7 e 8.0 são versões de mecanismo principais e a atualização de qualquer versão 5.7 para qualquer versão 8.0 é uma atualização da versão principal. RDS for MySQL versão 5.7.22 e 5.7.23 são versões secundárias e a atualização da versão 5.7.22 para a 5.7.23 é uma atualização da versão secundária.

**Importante**  
Você não pode modificar uma instância de banco de dados quando ela está sendo atualizada. Durante uma atualização, o status da instância de banco de dados é `upgrading`.

Para ter mais informações sobre atualizações de versões principais e secundárias de um mecanismo de banco de dados específico, consulte a seguinte documentação do mecanismo de banco de dados: 
+ [Atualizações do mecanismo de banco de dados do MariaDB](USER_UpgradeDBInstance.MariaDB.md)
+ [Atualizações do mecanismo de banco de dados do Microsoft SQL Server](USER_UpgradeDBInstance.SQLServer.md)
+ [Atualizações do mecanismo de banco de dados do RDS para MySQL](USER_UpgradeDBInstance.MySQL.md)
+ [Fazer upgrade do mecanismo de banco de dados RDS para Oracle](USER_UpgradeDBInstance.Oracle.md)
+ [Atualizações do mecanismo de banco de dados do RDS para PostgreSQL](USER_UpgradeDBInstance.PostgreSQL.md)

Para atualizações de versão principal, modifique manualmente a versão do mecanismo de banco de dados por meio do Console de gerenciamento da AWS, da AWS CLI ou da API do RDS. Nas atualizações de versão secundária, você pode modificar manualmente a versão do mecanismo ou optar por habilitar a opção **Upgrade automático de versões secundárias**.

**nota**  
As atualizações do mecanismo de banco de dados necessitam de tempo de inatividade. Você pode minimizar o tempo de inatividade necessário para a atualização da instância de banco de dados utilizando uma implantação azul/verde. 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).

**Topics**
+ [Atualizar manualmente a versão do mecanismo](#USER_UpgradeDBInstance.Upgrading.Manual)
+ [Atualizar automaticamente a versão do mecanismo espelho](#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades)

## Atualizar manualmente a versão do mecanismo
<a name="USER_UpgradeDBInstance.Upgrading.Manual"></a>

Para atualizar manualmente a versão do mecanismo de uma instância de banco de dados, use o Console de gerenciamento da AWS, a AWS CLI ou a API do RDS.

### Console
<a name="USER_UpgradeDBInstance.Upgrading.Manual.Console"></a>

**Para atualizar a versão do mecanismo de uma instância de banco de dados usando o console**

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)** e a instância de banco de dados que você deseja atualizar. 

1. Selecione **Modify**. A página **Modify DB instance (Modificar instância de banco de dados)** será exibida.

1. Em **DB engine version (Versão do mecanismo de banco de dados)**, selecione a nova versão.

1. Selecione **Continue (Continuar)** e verifique o resumo de modificações. 

1. Decida quando programar o upgrade:
   + Para colocar as alterações na fila de modificações pendentes, escolha **Aplicar durante a próxima janela de manutenção programada**. Durante a próxima janela de manutenção, o RDS aplica todas as alterações pendentes na fila.
   + Para aplicar as alterações imediatamente, escolha **Apply immediately**. Escolher essa opção pode causar uma interrupção em alguns casos. Para ter mais informações, consulte [Usar a configuração de programação de modificações](USER_ModifyInstance.ApplyImmediately.md). 

1. Na página de confirmação, revise suas alterações. Se estiverem corretas, escolha **Modify DB Instance (Modificar instância de banco de dados)** para salvar suas alterações. 

   Como alternativa, escolha **Back (Voltar)** para editar suas alterações ou escolha **Cancel (Cancelar)** para cancelar as alterações. 

### AWS CLI
<a name="USER_UpgradeDBInstance.Upgrading.Manual.CLI"></a>

Para atualizar a versão do mecanismo de uma instância de banco de dados, use o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI. Especifique os seguintes parâmetros: 
+ `--db-instance-identifier` – o nome da instância de banco de dados. 
+ `--engine-version` – o número da versão do mecanismo de banco de dados para a qual será feita a atualização. 

  Para obter informações sobre versões de mecanismo válidas, use o comando AWS CLI [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html).
+ `--allow-major-version-upgrade` – para atualizar a versão principal. 
+ `--no-apply-immediately` – para aplicar alterações durante a próxima janela de manutenção. Para aplicar as alterações imediatamente, use `--apply-immediately`. 

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

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --engine-version new_version \
4.     --allow-major-version-upgrade \
5.     --no-apply-immediately
```
Para Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --engine-version new_version ^
4.     --allow-major-version-upgrade ^
5.     --no-apply-immediately
```

### API do RDS
<a name="USER_UpgradeDBInstance.Upgrading.Manual.API"></a>

Para atualizar a versão do mecanismo de uma instância de banco de dados, use a ação [ ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html). Especifique os seguintes parâmetros: 
+ `DBInstanceIdentifier` – o nome da instância de banco de dados. Por exemplo *`mydbinstance`*. 
+ `EngineVersion` – o número da versão do mecanismo de banco de dados para a qual será feita a atualização. Para obter informações sobre versões de mecanismo válidas, use a operação [ DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html).
+ `AllowMajorVersionUpgrade` – para permitir ou não uma atualização de versão principal. Para isso, defina o valor como `true`. 
+ `ApplyImmediately` – se desejar aplicar as alterações imediatamente ou durante a próxima janela de manutenção. Para aplicar as alterações imediatamente, defina o valor como `true`. Para aplicar alterações durante a próxima janela de manutenção, defina o valor como `false`. 

## Atualizar automaticamente a versão do mecanismo espelho
<a name="USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades"></a>

As atualizações automáticas de versões secundárias atualizam periodicamente o banco de dados para versões recentes do respectivo mecanismo. No entanto, a atualização nem sempre inclui a versão mais recente do mecanismo de banco de dados. Se precisar manter seus bancos de dados em determinadas versões em momentos específicos, recomendamos atualizar manualmente para as versões de banco de dados necessárias de acordo com o cronograma exigido. Em casos de problemas críticos de segurança ou quando uma versão atinge a data de fim do suporte, o Amazon RDS pode aplicar uma atualização de versão secundária, mesmo que você não tenha habilitado a opção **Upgrade automático de versões secundárias**. Para ter mais informações, consulte a documentação sobre atualização do seu mecanismo de banco de dados específico.
+ [Atualizações automáticas da versão secundária para o RDS para PostgreSQL](USER_UpgradeDBInstance.PostgreSQL.Minor.md)
+ [Atualizações automáticas da versão secundária do RDS para MySQL](USER_UpgradeDBInstance.MySQL.Minor.md)
+ [Atualizações automáticas da versão secundária do RDS para MariaDB](USER_UpgradeDBInstance.MariaDB.Minor.md)
+ [Atualizações de versões secundárias Oracle](USER_UpgradeDBInstance.Oracle.Minor.md)
+ [Atualizações do mecanismo de banco de dados do Microsoft SQL Server](USER_UpgradeDBInstance.SQLServer.md)
+ [Db2 em versões do Amazon RDS](Db2.Concepts.VersionMgmt.md)

**Topics**
+ [Como atualizações da versão secundária automáticas funcionam](#USER_UpgradeDBInstance.Upgrading.scheduled)
+ [Como ativar as atualizações automáticas de versões secundárias](#USER_UpgradeDBInstance.Upgrading.turning-on-automatic)
+ [Determinar a disponibilidade das atualizações de manutenção](#USER_UpgradeDBInstance.Upgrading.availability)
+ [Localizar destinos de atualização de versão secundária automática](#USER_UpgradeDBInstance.Upgrading.targets)

### Como atualizações da versão secundária automáticas funcionam
<a name="USER_UpgradeDBInstance.Upgrading.scheduled"></a>

O *destino da atualização* é a versão do mecanismo de banco de dados para a qual o Amazon RDS atualiza seu banco de dados. Uma versão secundária do mecanismo é designada como o destino da atualização quando as seguintes condições são atendidas:
+ O banco de dados está executando uma versão secundária do mecanismo de banco de dados inferior à versão secundária pretendida do mecanismo. 

  Você pode encontrar a versão atual do mecanismo para a instância de banco de dados consultando a guia **Configuração** da página de detalhes do banco de dados ou executando o comando `describe-db-instances` da CLI.
+ O banco de dados tem a atualização automática de versões secundárias habilitada.

O RDS programa as atualizações para serem executadas automaticamente na janela de manutenção. Durante a atualização, o RDS faz o seguinte:

1. Executa uma verificação prévia do sistema para garantir que o banco de dados esteja íntegro e pronto para ser atualizado.

1. Atualiza o mecanismo de banco de dados para a versão secundária do mecanismo pretendida.

1. Executa verificações pós-atualização

1. Marca a atualização do banco de dados como concluída

As atualizações automáticas geram tempo de inatividade. A duração do tempo de inatividade depende de vários fatores, como o tipo de mecanismo de banco de dados e o tamanho do banco de dados.

### Como ativar as atualizações automáticas de versões secundárias
<a name="USER_UpgradeDBInstance.Upgrading.turning-on-automatic"></a>

Controle se a atualização automática da versão secundária está habilitada para uma instância de banco de dados quando você realiza as seguintes tarefas:
+ [Criar uma instância de banco de dados](USER_CreateDBInstance.md)
+ [Modificação de uma instância de banco de dados](Overview.DBInstance.Modifying.md)
+ [Como criar uma réplica de leitura](USER_ReadRepl.Create.md)
+ [Restaurar uma instância de banco de dados a partir de um snapshot](USER_RestoreFromSnapshot.md)
+ [Restaurar uma instância de banco de dados para uma hora específica](USER_PIT.md)
+ [Importar uma instância de banco de dados do Amazon S3](MySQL.Procedural.Importing.md) (para um backup do MySQL no Amazon S3)

Ao realizar essas tarefas, controle se a atualização automática da versão secundária está habilitada para a instância de banco de dados das seguintes maneiras:
+ Usando o console, defina a opção **Auto minor version upgrade (Atualização automática da versão secundária)**.
+ Usando a AWS CLI, defina a opção `--auto-minor-version-upgrade|--no-auto-minor-version-upgrade`.
+ Usando a API do RDS, defina o parâmetro `AutoMinorVersionUpgrade`.

### Determinar a disponibilidade das atualizações de manutenção
<a name="USER_UpgradeDBInstance.Upgrading.availability"></a>

Para determinar se uma atualização de manutenção, como uma atualização da versão do mecanismo de banco de dados, está disponível para a instância de banco de dados, use o console, a AWS CLI ou a API do RDS. Também atualize manualmente a versão do mecanismo do banco de dados e ajuste a janela de manutenção. Para ter mais informações, consulte [Manutenção de uma instância de banco de dados](USER_UpgradeDBInstance.Maintenance.md).

### Localizar destinos de atualização de versão secundária automática
<a name="USER_UpgradeDBInstance.Upgrading.targets"></a>

É possível usar o comando da AWS CLI a seguir para determinar a versão atual secundária de destino de atualização automática para uma versão de mecanismo de banco de dados secundária especificada em determinada Região da AWS. Você pode encontrar os valores `--engine` possíveis para este comando na descrição do parâmetro `Engine` em [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).

Para Linux, macOS ou Unix:

```
aws rds describe-db-engine-versions \
--engine engine \
--engine-version minor-version \
--region region \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output text
```

Para Windows:

```
aws rds describe-db-engine-versions ^
--engine engine ^
--engine-version minor-version ^
--region region ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output text
```

Por exemplo, o seguinte comando da AWS CLI determina o destino de upgrade secundário automático para a versão 8.0.11 secundária do MySQL na região da AWS Leste dos EUA (Ohio) (us-east-2).

Para Linux, macOS ou Unix:

```
aws rds describe-db-engine-versions \
--engine mysql \
--engine-version 8.0.11 \
--region us-east-2 \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output table
```

Para Windows:

```
aws rds describe-db-engine-versions ^
--engine mysql ^
--engine-version 8.0.11 ^
--region us-east-2 ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output table
```

A saída é semelhante à seguinte.

```
----------------------------------
|    DescribeDBEngineVersions    |
+--------------+-----------------+
|  AutoUpgrade |  EngineVersion  |
+--------------+-----------------+
|  False       |  8.0.15         |
|  False       |  8.0.16         |
|  False       |  8.0.17         |
|  False       |  8.0.19         |
|  False       |  8.0.20         |
|  False       |  8.0.21         |
|  True        |  8.0.23         |
|  False       |  8.0.25         |
+--------------+-----------------+
```

Neste exemplo, o valor de `AutoUpgrade` é `True` para o MySQL versão 8.0.23. Portanto, o destino de upgrade secundário automático é o MySQL versão 8.0.23, que está realçado na saída.

**Importante**  
Se você planeja migrar uma instância de banco de dados do RDS para PostgreSQL para um cluster de banco de dados do Aurora PostgreSQL no futuro próximo, recomendamos que você desative as atualizações automáticas de versão secundária para a instância de banco de dados no início da fase de planejamento. A migração para Aurora PostgreSQL pode ser adiada se a versão do RDS para PostgreSQL ainda não for compatível com o Aurora PostgreSQL. Para obter informações sobre Aurora PostgreSQL versões, consulte [ Versões de mecanismo para Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html).