O upgrade de versão principal sem tempo de inatividade permite atualizar uma instância RDS PostgreSQL para uma versão principal superior do mecanismo sem interrupção do serviço. O processo utiliza replicação lógica para sincronizar os dados da instância de origem para a instância de destino e, em seguida, redireciona o tráfego com uma breve janela de somente leitura.
Como funciona
O upgrade ocorre em três fases:
Pre-upgrade check — Valida a configuração da instância e confirme a compatibilidade com o modo de upgrade sem tempo de inatividade.
Upgrade task — Crie a instância de destino, estabelece a replicação lógica e sincroniza os dados.
Instance switch — Sincroniza as sequences e redireciona o tráfego para a instância de destino.
Impactos do upgrade
|
Fase |
Impacto |
Duração |
|
Restrição de DDL |
Todas as operações DDL são bloqueadas desde o início do upgrade até a conclusão da troca. |
Todo o processo de upgrade |
|
Acúmulo de log WAL |
Um slot de replicação é criado antes do início do upgrade, fazendo com que os logs de Write-Ahead Logging (WAL) se acumulem na instância de origem. O uso de disco aumenta temporariamente e cai após o estabelecimento da replicação lógica. |
Da criação do slot de replicação até o início do subscriber no destino |
|
Sincronização por replicação lógica |
A replicação lógica gera carga adicional na instância de origem. O impacto varia conforme o número de bancos de dados e o volume de gravações. Monitore o uso de recursos do |
Do estabelecimento da replicação lógica até a conclusão da troca |
|
Troca (somente leitura) |
A instância entra em modo somente leitura enquanto as sequences são sincronizadas. |
Proporcional ao número de sequences |
Para localizar a janela de acúmulo de log WAL, acesse
Upgrade History
e consulte o log do upgrade. Os logs WAL começam a se acumular no evento
creating replication slots and publications on the source
e param de se acumular quando o evento
subscriber on the destination starts
estabelece a relação de replicação lógica.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância RDS PostgreSQL com Major Version Upgrade visível no painel de navegação à esquerda
Instâncias somente leitura vinculadas à instância primária removidas, ou a aplicação atualizada para conectar diretamente ao endpoint da instância primária
Se
Major Version Upgrade
não estiver visível no console, verifique a versão e a configuração de série da sua instância. Consulte
Fazer upgrade da versão principal do mecanismo
para conhecer os requisitos.
Se houver instâncias somente leitura, atualize a configuração de endpoint da aplicação para apontar para a instância primária durante horários de baixo uso antes de excluir as instâncias somente leitura.
Etapa 1: Execute a verificação pré-upgrade
O upgrade sem tempo de inatividade utiliza replicação lógica, que tem requisitos específicos de compatibilidade. A verificação pré-upgrade valida sua instância em relação a esses requisitos e sinaliza qualquer item que possa bloquear o upgrade.
Faça login no console do ApsaraDB RDS e acesse a página Instances. Na barra de navegação superior, selecione a região onde sua instância está localizada e clique no ID da instância.
No painel de navegação à esquerda, clique em Major Version Upgrade.
Na aba Upgrade Check, clique em Create Upgrade Check Report.
Selecione a versão de destino em Select The Upgrade Version, defina Upgrade Mode como Zero Downtime e clique em OK.
Revise os resultados na seção Upgrade Check Log.
Avance para a Etapa 2 somente se Check Result exibir successful. Caso a verificação falhe, clique em View Information para acessar o relatório detalhado. Para obter ajuda na interpretação dos erros, consulte Interpretando o relatório de verificação de upgrade de versão principal do RDS PostgreSQL.
Se plugins forem criados na instância de destino após a aprovação da verificação, execute a verificação novamente antes de prosseguir.
Etapa 2: Crie a tarefa de upgrade
Clique na aba Upgrade Instance, leia o aviso, selecione a versão de destino em Select The Upgrade Version e clique em Create Upgrade Task.
No diálogo de confirmação, clique em OK.
Na seção Create Major Version Upgrade Task, defina Upgrade Mode como Zero-downtime.
Clique em Create Now.
O status da instância muda para Migrating quando a tarefa de upgrade é iniciada. Acompanhe o progresso na aba Upgrade History.
Monitorar a carga da instância durante o upgrade
Monitore a carga da instância e o uso de disco durante todo o upgrade:
Uso de disco: Aumenta durante o acúmulo de log WAL e cai após o estabelecimento da replicação lógica.
Carga de CPU e rede: Sobe durante a fase de sincronização por replicação lógica. Verifique o
wal_senderem cada categoria de recurso para avaliar o impacto.
Etapa 3: Verifique e faça a troca para a instância de destino
Verificar a instância de destino
Quando o status da instância mudar de Migrating para Migrating Data, a replicação lógica estará estabelecida. Nesse momento, conecte-se à instância de destino para verificar os dados após o upgrade.
Acesse a aba Upgrade History.
Copie o Higher Version Verification Address do registro de upgrade de destino.
Conecte-se à instância de destino e verifique se os dados atendem às suas expectativas.
A instância de destino está em modo somente leitura durante a verificação.
Redirecionar o tráfego para a instância de destino
Após confirmar que os dados estão corretos e que Upgrade Result exibe Synchronizing:
Na coluna Upgrade Log, clique em Change.
Defina o Tolerable Write Suspension Time (em segundos) e clique em OK.
Durante a troca, as sequences são sincronizadas e a instância entra em modo somente leitura (Upgrade Result muda para Read Only). Se a sincronização das sequences ultrapassar o tempo de suspensão de gravação tolerável, o sistema retorna ao estado Synchronizing e remove a restrição de somente leitura — a troca não é concluída e você pode tentar novamente.
-
Verifique o resultado da troca:
Migrating — A troca está em andamento. Para cancelar, clique em Break na coluna Upgrade Log.
The Instance Is Running. — A troca foi concluída. Verifique a versão atual do mecanismo na página Basic Information da instância.
Se
Upgrade Result
exibir um status diferente de
Synchronizing
, consulte
Status de resultado do upgrade
para orientações. Para abandonar o upgrade por completo, clique em
Cancel
na coluna
Upgrade Log
. Essa ação exclui o slot de replicação, remove a carga de replicação lógica da instância de origem e reativa as operações DDL.
Rollback
Antes da troca, o sistema faz backup automaticamente da instância de versão inferior. Caso precise reverter após a troca:
Clone uma nova instância a partir do último backup da instância de versão inferior feito antes da troca.
Atualize o endpoint da instância clonada para corresponder ao endpoint da instância original.
Status de resultado do upgrade
A aba Upgrade History exibe os seguintes status na coluna Upgrade Result:
|
Status |
Significado |
Ações disponíveis |
|
Running |
A tarefa de upgrade está em execução. |
Nenhuma |
|
Synchronizing |
A replicação lógica está íntegra. |
Change: Faz a troca para a instância de destino. Cancel: Abandona este upgrade. |
|
Replication Interrupted |
A replicação lógica está anormal. |
Consulte o log de upgrade para identificar a causa. Cancel: Abandona este upgrade. |
|
Read Only |
A troca está em andamento. A instância está em modo somente leitura enquanto as sequences são sincronizadas. |
Break: Cancele esta operação de troca. |
|
Switch |
A sincronização das sequences foi concluída; as tarefas finais estão em execução. |
Nenhuma |
|
Canceled |
A tarefa de upgrade foi cancelada. |
Nenhuma |
|
Success |
O upgrade foi concluído. |
Nenhuma |