Realizar uma atualização da versão secundária - Amazon Aurora

Realizar uma atualização da versão secundária

É possível usar os seguintes métodos para atualizar a versão secundária de um cluster de banco de dados ou para aplicar um patch em um cluster de banco de dados:

Antes de realizar um upgrade da versão secundária

Recomendamos que você execute as seguintes ações para reduzir o tempo de inatividade durante um upgrade de versão secundária:

Como realizar atualizações de versão secundária e aplicar patches

Patches e atualizações de versões secundárias ficam disponíveis em Regiões da AWS somente após testes rigorosos. Antes de lançar atualizações e patches, o Aurora PostgreSQL testa para garantir que problemas de segurança conhecidos, bugs e outros problemas que surgem após o lançamento da versão secundária da comunidade não interrompam a estabilidade geral da frota do Aurora PostgreSQL.

À medida que o Aurora PostgreSQL disponibiliza novas versões secundárias, as instâncias que compõem o cluster de banco de dados do Aurora PostgreSQL podem ser atualizadas automaticamente durante a janela de manutenção especificada. Para que isso aconteça, o cluster de banco de dados do Aurora PostgreSQL deve ter a opção Enable auto minor version upgrade (Ativar atualização automática da versão secundária) ativada. Todas as instâncias de banco de dados que compõem o cluster de banco de dados do Aurora PostgreSQL devem ter a opção de atualização automática de versão secundária (AmVU) ativada para que a atualização secundária seja aplicada em todo o cluster.

dica

Verifique se a opção Enable auto minor version upgrade (Ativar atualização automática da versão secundária) está ativada para todas as instâncias de banco de dados do PostgreSQL que compõem seu cluster de banco de dados do Aurora PostgreSQL. Essa opção deve estar ativada para que todas as instâncias no cluster de banco de dados funcionem. Para obter informações sobre como definir a configuração Upgrade automático de versões secundárias e como ela funciona quando aplicada nos níveis de cluster e instância, consulte  Atualizações da versão secundária automáticas para clusters de banco de dados do Aurora.

Você pode conferir o valor da opção Enable auto minor version upgrade (Ativar atualização automática da versão secundária) para todos os clusters de banco de dados do Aurora PostgreSQL usando o comando describe-db-instances da AWS CLI com a consulta a seguir.

aws rds describe-db-instances \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,DBInstanceIdentifier:DBInstanceIdentifier,AutoMinorVersionUpgrade:AutoMinorVersionUpgrade}'

Essa consulta retorna uma lista de todos os clusters de banco de dados do Aurora e de suas instâncias com um valor true ou false para o status da configuração AutoMinorVersionUpgrade. O comando conforme mostrado pressupõe que você tenha a AWS CLIconfigurada para almejar sua Região da AWS padrão.

Para obter mais informações sobre a opção AmVU e como modificar o cluster de banco de dados do Aurora para usá-la, consulte Atualizações da versão secundária automáticas para clusters de banco de dados do Aurora.

Você pode atualizar seus clusters de banco de dados do Aurora PostgreSQL para novas versões secundárias respondendo a tarefas de manutenção ou modificando o cluster para usar a nova versão.

Você pode identificar todas as atualizações ou patches disponíveis para seus clusters de banco de dados do Aurora PostgreSQL usando o console do RDS e abrindo o menu Recommendations (Recomendações). Nesse menu, é possível encontrar uma lista de vários problemas de manutenção, como Old minor versions (Versões secundárias antigas). Dependendo do ambiente de produção, você pode optar por programar (Schedule) a atualização ou tomar medidas imediatas, escolhendo Apply now (Aplicar agora), conforme mostrado a seguir.

Imagem do console mostrando Recommendation (Recomendação) para realizar a atualização para uma versão secundária mais recente.

Para saber mais sobre como manter um cluster de banco de dados do Aurora, inclusive como aplicar manualmente patches e atualizações de versões secundárias, consulte Manutenção de um cluster de banco de dados do Amazon Aurora.

Atualizações de versões secundárias e patches com tempo de inatividade zero

A atualização de um cluster de banco de dados do Aurora PostgreSQL envolve a possibilidade de uma interrupção. Durante o processo de atualização, o banco de dados é desligado à medida que está sendo atualizado. Se você iniciar a atualização enquanto o banco de dados estiver ocupado, perderá todas as conexões e transações que o cluster de banco de dados está processando. Se você esperar até que o banco de dados fique ocioso para realizar a atualização, talvez seja necessário esperar muito tempo.

O recurso ZDP (zero-time patch) melhora o processo de atualização. Com o ZDP, atualizações de versões menores e patches podem ser aplicados com impacto mínimo no cluster de banco de dados do Aurora PostgreSQL. O ZDP é usado ao aplicar patches ou atualizações de versões secundárias mais recentes para o Aurora PostgreSQL e outras versões posteriores dessas versões secundárias e principais mais recentes. Ou seja, a atualização para novas versões secundárias de qualquer uma dessas versões em diante usa o ZDP.

A tabela a seguir mostra as versões do Aurora PostgreSQL e as classes de instâncias de banco de dados em que o ZDP está disponível:

Version (Versão) Classes de instância db.r* Classes de instância db.t* Classes de instância db.x* Classe de instância db.serverless
10.21.0 e versões 10.21 posteriores Sim Sim Sim N/D
11.16.0 e versões 11.16 posteriores Sim Sim Sim N/D
11.17 e versões posteriores Sim Sim Sim N/D
12.11.0 e versões 12.11 posteriores Sim Sim Sim N/D
12.12 e versões posteriores Sim Sim Sim N/D
13.7.0 e versões 13.7 posteriores Sim Sim Sim N/D
13.08 e versões posteriores Sim Sim Sim Sim
14.3.1 e versões 14.3 posteriores Sim Sim Sim N/D
14.4.0 e versões 14.4 posteriores Sim Sim Sim N/D
14.5 e versões posteriores Sim Sim Sim Sim
15.3 e versões posteriores Sim Sim Sim Sim

O ZDP funciona preservando as conexões atuais do cliente com seu cluster de banco de dados Aurora PostgreSQL durante todo o processo de atualização do Aurora PostgreSQL. No entanto, nos seguintes casos, as conexões serão interrompidas para que o ZDP seja concluído:

  • Consultas ou transações de longa execução estão em andamento.

  • As instruções Data Definition Language (DDL) estão em execução.

  • As tabelas temporárias ou bloqueios de tabela estão em uso.

  • Todas as sessões estão sendo ouvidas nos canais de notificação.

  • Um cursor no status “'WITH HOLD” está em uso.

  • As conexões TLSv1.3 ou TLSv1.1 estão em uso.

Durante o processo de upgrade usando o recurso ZDP, o mecanismo de banco de dados procura um ponto tranquilo para pausar todas as novas transações. Essa ação protege o banco de dados durante patches e upgrades. Para garantir que suas aplicações funcionem sem problemas com transações pausadas, recomendamos integrar a lógica de novas tentativas em seu código. Essa abordagem garante que o sistema consiga gerenciar qualquer breve tempo de inatividade sem falhas e possa tentar realizar novamente as novas transações depois do upgrade.

Quando o recurso ZDP é concluído com êxito, as sessões da aplicação são preservadas, exceto aquelas com conexões descartadas, e o mecanismo de banco de dados é reiniciado enquanto o upgrade ainda está em andamento. Embora a reinicialização do mecanismo de banco de dados possa causar uma queda temporária no throughput, em geral, ela dura apenas alguns segundos ou, no máximo, cerca de um minuto.

Em alguns casos, a aplicação de patch de tempo de inatividade zero (ZDP) pode não ter êxito. Por exemplo, as alterações de parâmetros no estado pending no cluster de banco de dados do Aurora PostgreSQL ou em suas instâncias interferem no ZDP.

Você pode encontrar métricas e eventos para operações do ZDP na página Events (Eventos) no console. Os eventos incluem o início da atualização do ZDP e a conclusão da atualização. Nesse caso, é possível descobrir quanto tempo o processo demorou e o número de conexões preservadas e descartadas que ocorreram durante a reinicialização. É possível localizar detalhes no log de erros do banco de dados.

Atualizar o mecanismo do Aurora PostgreSQL para uma nova versão secundária

Você pode atualizar o cluster de banco de dados do Aurora PostgreSQL para uma nova versão secundária usando o console, a AWS CLI ou a API do RDS. Antes de realizar o upgrade, recomendamos seguir as mesmas práticas recomendadas para atualizações de versão principais. Assim como nas novas versões principais, as novas versões secundárias também podem ter melhorias no otimizador, como correções, que podem causar regressões no plano de consulta. Para garantir a estabilidade do plano, recomendamos usar a extensão Query Plan Management (QPM) conforme detalhado em Garantir a estabilidade do plano após a atualização da versão principal.

Como atualizar o mecanismo de seu cluster de banco de dados do Aurora PostgreSQL
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados) e o cluster de banco de dados que você deseja atualizar.

  3. Selecione Modify. A página Modify DB cluster (Modificar cluster de banco de dados) é exibida.

  4. Em Engine version (Versão do mecanismo), escolha a nova versão.

  5. Escolha Continue (Continuar) e verifique o resumo de modificações.

  6. 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 Modificar um cluster de bancos de dados Amazon Aurora.

  7. Na página de confirmação, revise suas alterações. Se estiverem corretas, escolha Modify cluster (Modificar cluster) para salvar suas alterações.

    Ou selecione Back (Voltar) para editar as alterações ou Cancel (Cancelar) para cancelar as alterações.

Para atualizar a versão do mecanismo de um cluster de banco de dados, use o comando modify-db-cluster da AWS CLI com os seguintes parâmetros:

  • --db-cluster-identifier: o nome de seu cluster de banco de dados do Aurora PostgreSQL.

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

  • --no-apply-immediately: aplica as alterações durante a próxima janela de manutenção. Para aplicar as alterações imediatamente, use --apply-immediately.

Para Linux, macOS ou Unix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --engine-version new_version \ --no-apply-immediately

Para Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --engine-version new_version ^ --no-apply-immediately

Para atualizar a versão do mecanismo de um cluster de banco de dados, use a operação ModifyDBCluster. Especifique os seguintes parâmetros:

  • DBClusterIdentifier: o nome do cluster de banco de dados. Por exemplo mydbcluster.

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

  • ApplyImmediately: se deseja ou não 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.