Use o modo de tempo de inatividade zero para atualizar a versão principal do mecanismo de uma instância ApsaraDB RDS for PostgreSQL e manter o banco de dados totalmente operacional. A instância aceita leituras e gravações durante todo o processo. No switchover final, ela entra em modo somente leitura por apenas alguns segundos. A duração exata depende da quantidade de sequences e do volume de gravações de transações grandes.
Para outras abordagens de atualização, consulte Introduction to major version upgrade solutions.
Como funciona
O modo de tempo de inatividade zero executa o pg_upgrade para atualizar um snapshot da instância para a versão de destino. Em seguida, usa replicação lógica nativa para sincronizar alterações incrementais da source. Verifique a instância de destino antes de acionar o switchover. Ao iniciar o switchover, a instância fica somente leitura brevemente enquanto as sequences são sincronizadas. Depois, o tráfego é direcionado para a nova versão.
Faturamento
Gratuito.
Pré-requisitos
Antes de começar, certifique-se de que:
A instância executa o ApsaraDB RDS for PostgreSQL 16 ou uma versão anterior.
O tipo de armazenamento é disco cloud. Instâncias com discos locais de alto desempenho só podem usar o blue-green deployment mode.
O método de faturamento é pagamento conforme o uso ou assinatura. Instâncias Serverless só podem usar o blue-green deployment mode.
A instância não é uma read-only instance nem uma dedicated cluster instance.
O parâmetro
wal_levelestá definido comological. As atualizações com tempo de inatividade zero dependem de replicação lógica. Portanto, se owal_levelestiver comoreplicaouminimal, a verificação pré-atualização falhará. Caso contrário, modify the instance parameters antes de prosseguir.O Babelfish não está ativado. O número da versão secundária do mecanismo não deve terminar com
babelfish.
Observações de uso
Revise os pontos abaixo antes de iniciar a atualização.
Impacto nos negócios
Operações DDL (Data Definition Language) são proibidas desde o início da atualização até a conclusão do switchover. O tempo de inatividade da instância de source é medido em segundos e varia conforme a quantidade de sequences e o volume de gravações de transações grandes.
Slots de replicação
Caso a instância de source possua uma publicação (extremidade publicadora de um slot de replicação), esse slot será perdido após a atualização.
Se a instância de source tiver um assinante (extremidade assinante de um slot de replicação), a atualização pode causar problemas de sincronização de dados devido à preempção do slot. Consulte a seção de FAQ para mais detalhes.
Alterações de parâmetros
Parâmetros não suportados pela versão de destino são excluídos automaticamente.
Parâmetros cujos valores estejam fora do intervalo válido para a versão de destino são redefinidos para os valores padrão do modelo de parâmetros dessa versão.
O
statement_timeouté temporariamente definido como0durante a atualização e restaurado ao valor original posteriormente.
Tarefas do DTS
Se a instância for source ou destino do Data Transmission Service (DTS), recreate the DTS task após a atualização.
Compatibilidade de plugins
A atualização leva a instância automaticamente à versão secundária mais recente do mecanismo, o que pode gerar problemas de compatibilidade com plugins.
Backups
Um backup completo é realizado antes e depois da atualização para permitir recuperação baseada em clone.
Impacto nas diferentes etapas da atualização
|
Etapa da atualização |
Impacto |
|
Início da atualização de versão principal |
Operações DDL são proibidas. |
|
Criação de slots de replicação e publicações |
Operações DDL são proibidas. Logs WAL começam a acumular. |
|
Início do assinante e estabelecimento da relação de replicação lógica |
Operações DDL são proibidas. Logs WAL passam a ser consumidos e deixam de acumular. A replicação lógica gera carga de recursos diretamente relacionada ao número de bancos de dados e ao tráfego. |
|
Início do switchover |
Operações DDL são proibidas. A replicação lógica gera carga de recursos proporcional ao número de bancos de dados e ao tráfego. A instância fica somente leitura; a duração desse estado depende da quantidade de sequences. |
|
Conclusão do switchover (atualização finalizada) |
O slot de replicação lógica é excluído, eliminando a carga de recursos gerada por ele. A instância retoma as operações normais de leitura e gravação. |
Após o início da tarefa de atualização, acesse a aba Upgrade History. Na coluna Upgrade Log da tarefa desejada, clique em View Information para visualizar o processo detalhado da atualização.
Etapa 1: Execute uma verificação pré-atualização
Faça login no console do ApsaraDB RDS. Na barra de navegação superior, selecione a região onde a instância está localizada, encontre a instância e clique em seu ID.
-
No painel de navegação à esquerda, clique em Major Version Upgrade.
Se Major Version Upgrade não aparecer, verifique a versão e a configuração da sua instância. Para detalhes, consulte Prerequisites .
Na aba Upgrade Check, clique em Create upgrade check report.
Selecione a versão de destino, defina o Upgrade Mode como Zero Downtime e clique em OK. O status da instância mudará para Maintaining Instance. Após a conclusão da verificação, o status retornará para Running.
-
Analise o resultado da verificação: Para ajuda na interpretação dos resultados, consulte Interpret an ApsaraDB RDS for PostgreSQL major version upgrade check report.
Success ou Warning: prossiga para a Etapa 2.
Failed: clique em View Information, corrija os problemas relatados e execute a verificação novamente.
ImportanteSe o resultado for Warning, corrija todos os problemas relatados e refaça a verificação até obter Success. - Se você criar um plugin na instância primária após uma verificação bem-sucedida, execute a verificação novamente antes de atualizar.
Etapa 2: Inicie a atualização
Antes de executar esta etapa, garanta que concluiu a Etapa 1: Execute uma verificação pré-atualização: na aba Upgrade Check, crie um relatório de verificação de atualização e confirme que o resultado é Success ou Warning antes de criar a tarefa de atualização.
Clique na aba Upgrade Instance, leia os avisos, selecione uma versão em Select The Destination Version e clique em Create Upgrade Task.
Na caixa de diálogo, leia o aviso e clique em OK.
Na seção Create Major Engine Version Upgrade Task, defina o Upgrade Mode como Zero Downtime e clique em Create.
Quando o status da instância mudar para Migrating, a tarefa de atualização terá sido iniciada.
O tempo necessário depende da quantidade de objetos de banco de dados na instância — quanto mais objetos, maior a duração. Acompanhe o progresso em Task Hub.
Não é possível modificar ou excluir tarefas de atualização após a criação.
Enquanto a instância estiver no estado Migrating, tarefas de O&M (operações e manutenção), como modificar parâmetros, reiniciar ou liberar a instância, não são suportadas.
Etapa 3: Verifique e realize o switchover
Verifique a instância de destino
Quando o status da instância mudar de Migrating para Migrating Data Out, a replicação lógica estará estabelecida e a instância de destino estará pronta para verificação.
Acesse a aba Upgrade History e utilize a Later Version Verification URL do registro de atualização para conectar-se à instância de destino e verificar os dados.
A instância de destino permanece em modo somente leitura durante esta fase. Operações de gravação não são suportadas.
Faça o switchover para a nova versão
-
Após confirmar que os dados atendem às expectativas e o Upgrade Result mostrar Synchronizing, clique em Switchover na coluna Upgrade Log.
- Se o Upgrade Result mostrar um status diferente, consulte Upgrade result descriptions . - Para abandonar a atualização, clique em Cancel na coluna Upgrade Log . Isso exclui o slot de replicação lógica, remove a sobrecarga de replicação da instância de source e reativa as operações DDL.
Na caixa de diálogo Switchover, defina a Write Downtime Tolerance (em segundos) e clique em OK. Essa configuração instrui o sistema a aguardar a compensação do atraso de replicação antes de concluir o switchover, garantindo a consistência dos dados. Durante essa espera, o Upgrade Result mostra Read-only. Se o período de tolerância for excedido, o sistema retorna para Synchronizing e remove a restrição de somente leitura. Quando o Upgrade Result mudar para Read-only, o switchover estará em andamento e o status da instância será Migrating. Para cancelar um switchover já iniciado, clique em Interrupted na coluna Upgrade Log.
-
Quando o Upgrade Result mudar para Succeeded, o switchover estará concluído e o status da instância será Running. Verifique a versão atual na página Basic Information da instância.
Para ver a duração exata do período somente leitura após a atualização, acesse a aba Upgrade History e clique em View Information na coluna Upgrade Log . O tempo de somente leitura corresponde ao intervalo entre o Switching time e o Switching completion time , não incluindo o período em que a instância fica inacessível devido à propagação do cache DNS.
Descrições dos resultados da atualização
A coluna Upgrade Result na aba Upgrade History exibe um dos seguintes valores durante a atualização.
|
Resultado da atualização |
Status da instância |
Descrição |
Ações disponíveis |
|
Running |
Migrating |
A tarefa de atualização está em execução. |
Nenhuma. |
|
Synchronizing |
Migrating Data Out |
A replicação lógica está normal. |
Alternar para a nova versão ou cancelar a atualização. |
|
Replication Interrupted |
Migrating Data Out |
A replicação lógica apresenta anomalias. |
Visualizar o log de atualização para identificar a causa ou cancelar a atualização. |
|
Read-only |
Migrating |
O switchover está em andamento. A instância fica somente leitura enquanto as sequences são sincronizadas. |
Interromper: cancelar o switchover. |
|
Switchover |
Migrating |
Sincronização de sequences concluída; finalizando o switchover. |
Nenhuma. |
|
Cancel |
Running |
A tarefa de atualização foi cancelada. |
Nenhuma. |
|
Succeeded |
Running |
A tarefa de atualização foi concluída com sucesso. |
Nenhuma. |
Referência de API
|
Operação de API |
Descrição |
|
Executa uma verificação pré-atualização para uma atualização de versão principal. |
|
|
Consulta o relatório de verificação pré-atualização. |
|
|
Atualiza a versão principal do mecanismo. |
|
|
Consulta o histórico de tarefas de atualização de versão principal. |