Atualizações do mecanismo de banco de dados do RDS para PostgreSQL - Amazon Relational Database Service

Atualizações do mecanismo de banco de dados do RDS para PostgreSQL

Há dois tipos de atualizações que você pode gerenciar para o banco de dados do PostgreSQL:

  • Atualizações de sistema operacionais: ocasionalmente, o Amazon RDS pode precisar atualizar o sistema operacional subjacente do banco de dados para aplicar correções de segurança ou alterações no sistema operacional. Decida quando o Amazon RDS aplicará atualizações de SO usando o console do RDS, a AWS Command Line Interface (AWS CLI) ou a API do RDS. Para obter mais informações sobre atualizações de SO, consulte Aplicar atualizações para uma instância de banco de dados.

  • Atualizações de mecanismos de banco de dados: quando o Amazon RDS comporta uma nova versão de um mecanismo de banco de dados, você pode atualizar os de bancos de dados para essa nova versão.

Nesse contexto, banco de dados é uma instância de banco de dados do RDS para PostgreSQL ou um cluster de banco de dados multi-AZ.

Há dois tipos de atualizações do mecanismo de bancos de dados do PostgreSQL: de versão principal e de versão secundária.

Atualizações da versão principal

As atualizações da versão principal podem conter as alterações de banco de dados incompatíveis com os aplicativos existentes. Por isso, você deve realizar manualmente as atualizações de versões principais dos bancos de dados. Você pode iniciar uma atualização de versão principal modificando manualmente a instância de banco de dados ou o cluster de banco de dados multi-AZ. Antes de realizar uma atualização de versão principal, recomendamos seguir as etapas descritas em Escolher uma versão principal para uma atualização do RDS para PostgreSQL.

O Amazon RDS gerencia os upgrades de versões principais multi-AZ das seguintes formas:

  • Implantação de instância de banco de dados multi-AZ: o Amazon RDS faz upgrade simultaneamente da instância primária e de todas as instâncias de espera. O banco de dados pode ficar indisponível por vários minutos enquanto o upgrade é concluído.

  • Implantação de cluster de banco de dados multi-AZ: o Amazon RDS faz upgrade simultaneamente das instâncias de gravador e leitor. O banco de dados pode ficar indisponível por vários minutos enquanto o upgrade é concluído.

Se você fizer upgrade de uma instância de banco de dados com réplicas de leitura na região, o Amazon RDS fará upgrade das réplicas e da instância de banco de dados primária.

O Amazon RDS não atualiza réplicas de leitura de clusters de banco de dados multi-AZ. Se você realizar uma atualização de versão principal de um cluster de banco de dados multi-AZ, o estado da replicação das réplicas de leitura mudará para Encerrado. Você deve excluir e recriar as réplicas de leitura manualmente após a conclusão da atualização.

dica

É possível minimizar o tempo de inatividade necessário para a atualização da versão principal 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.

Atualizações de versões secundárias

Por outro lado, atualizações de versões secundárias incluem apenas alterações compatíveis com versões anteriores dos aplicativos existentes. Você pode iniciar uma atualização de versão secundária manualmente modificando o banco de dados. Ou é possível habilitar a opção Upgrade automático de versões secundárias ao criar ou modificar um banco de dados. Isso significa que o Amazon RDS atualiza automaticamente o banco de dados depois de testar e aprovar a nova versão.

O Amazon RDS gerencia os upgrades de versões secundárias multi-AZ das seguintes formas:

  • Implantação de instância de banco de dados multi-AZ: o Amazon RDS faz upgrade simultaneamente da instância primária e de todas as instâncias de espera. O banco de dados pode ficar indisponível por vários minutos enquanto o upgrade é concluído.

  • Implantação de cluster de banco de dados multi-AZ: o Amazon RDS faz upgrade das instâncias de banco de dados de leitor, uma por vez. Depois, uma das instâncias de banco de dados de leitor passa a ser a nova instância de banco de dados de gravador. Depois, o Amazon RDS atualiza a antiga instância de gravador (que agora é uma instância de leitor). Os clusters de banco de dados multi-AZ normalmente reduzem o tempo de inatividade de atualizações de versões secundárias para aproximadamente 35 segundos. Quando usado com o RDS Proxy, é possível reduzir ainda mais o tempo de inatividade para um segundo ou menos. Para ter mais informações, consulte Amazon RDS Proxy. Como alternativa, é possível usar um proxy de banco de dados de código aberto, como ProxySQL, PgBouncer ou driver avançado de encapsulamento JDBC da AWS.

Se o banco de dados tiver réplicas de leitura, primeiro faça upgrade de todas elas antes de fazer upgrade da instância ou do cluster de origem.

Para ter mais informações, consulte Atualizações automáticas da versão secundária para o RDS para PostgreSQL. Para obter informações sobre como executar manualmente uma atualização de versão secundária, consulte Atualizar manualmente a versão do mecanismo.

Para ter mais informações sobre versões de mecanismos de banco de dados e a política de descontinuação dessas versões, consulte Versões de mecanismos de banco de dados nas Perguntas frequentes sobre o Amazon RDS.

Considerações sobre atualizações do PostgreSQL

Para fazer a atualização dos bancos de dados com segurança, o Amazon RDS usa o utilitário pg_upgrade, descrito na documentação do PostgreSQL

Se o período de retenção de backup for maior que 0, o Amazon RDS usará dois snapshots de banco de dados durante o processo de upgrade. O primeiro snapshot de banco de dados é do banco de dados antes de qualquer alteração de atualização ter sido feita. Se a atualização apresentar falha para seus bancos de dados, você poderá restaurar esse snapshot para criar um banco de dados que execute a versão antiga. O segundo snapshot de banco de dados é tirado após a conclusão do upgrade.

nota

O Amazon RDS só tirará snapshots de banco de dados durante o processo de atualização se você tiver definido o período de retenção de backup para o banco de dados como um número maior que 0. Para modificar o período de retenção de backup para uma instância de banco de dados, consulte Modificar uma instância de banco de dados do Amazon RDS. Não é possível configurar um período de retenção de backup personalizado para um cluster de banco de dados multi-AZ.

Ao fazer uma atualização de versão principal de uma instância de banco de dados, qualquer réplica de leitura na região também será atualizada automaticamente. Após o início do fluxo de trabalho de atualização, as réplicas de leitura aguardam até que a pg_upgrade seja concluída com êxito na instância de banco de dados primária. Depois disso, a atualização da instância de banco de dados primária aguarda a conclusão das atualizações da réplica de leitura. Você enfrenta uma interrupção até que a atualização seja concluída. Quando você realiza uma atualização de versão principal de um cluster de banco de dados multi-AZ, o estado da replicação das réplicas de leitura muda para Encerrado.

Depois que uma atualização for concluída, não será possível reverter para a versão anterior do mecanismo de banco de dados. Se quiser retornar à versão anterior, restaure o snapshot de banco de dados que foi tirado antes da atualização para criar um banco de dados.

Encontrar destinos de atualização válidos

Ao usar o AWS Management Console para atualizar um banco de dados, ele exibe os destinos de atualização válidos para o banco de dados. Também é possível usar o seguinte comando da AWS CLI para identificar os destinos de atualização válidos para um banco de dados:

Para Linux, macOS ou Unix:

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version version-number \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Para Windows:

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version version-number ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Por exemplo, para identificar os destinos de atualização válidos para um banco de dados PostgreSQL versão 16.1, execute o seguinte comando da AWS CLI:

Para Linux, macOS ou Unix:

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version 16.1 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Para Windows:

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version 16.1 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text