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:
Tópicos
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:
A manutenção do cluster de banco de dados do Aurora deve ser realizada durante um período de baixo tráfego. Use o Insights de Performance para identificar esses períodos a fim de configurar as janelas de manutenção corretamente. Consulte mais informações sobre o Insights de Performance em Monitoring DB load with Performance Insights on Amazon RDS. Consulte mais informações sobre a janela de manutenção do cluster de banco de dados em Ajustar a janela de manutenção do cluster de banco de dados preferencial.
-
Use SDKs da AWS compatíveis com oscilações e recuos exponenciais como uma prática recomendada. Consulte mais informações em Exponential Backoff And Jitter
.
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.
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
-
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados) e o cluster de banco de dados que você deseja atualizar.
-
Selecione Modify. A página Modify DB cluster (Modificar cluster de banco de dados) é exibida.
-
Em Engine version (Versão do mecanismo), escolha a nova versão.
-
Escolha Continue (Continuar) e verifique o resumo de modificações.
-
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.
-
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-versionnew_version
\ --no-apply-immediately
Para Windows:
aws rds modify-db-cluster ^ --db-cluster-identifier
mydbcluster
^ --engine-versionnew_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 comotrue
. Para aplicar alterações durante a próxima janela de manutenção, defina o valor comofalse
.