PolarDB
clusters utilizam uma arquitetura em três camadas: o proxy de banco de dados (PolarProxy), o mecanismo de kernel do banco de dados (DB) e o armazenamento distribuído (Store). É possível atualizar o PolarProxy ou o kernel do banco de dados de forma independente, ou atualizar ambos simultaneamente.
-- View currently installed extensions and their versions
SELECT name, installed_version FROM pg_available_extensions WHERE installed_version IS NOT NULL;
-- Upgrade a specific extension (for example, vector)
ALTER EXTENSION vector UPDATE;
Métodos de atualização
PolarDB para MySQL oferece suporte a atualizações manuais e automáticas de versões secundárias do mecanismo.
|
Método de atualização |
Descrição |
|
Atualização manual |
Você pode selecionar a versão de destino e o horário da atualização com base nos requisitos do seu negócio e, em seguida, iniciar o processo. Este tópico descreve principalmente atualizações manuais. |
|
Atualização automática |
O sistema agenda uma tarefa de atualização de versão secundária do mecanismo quando as condições forem atendidas. Para conhecer as regras e o procedimento de configuração, consulte {{XREF_0}}. |
Precauções
-
Uma atualização de versão normalmente leva até 30 minutos. Durante esse período, o PolarProxy ou o kernel do banco de dados é reiniciado, o que pode causar interrupções transitórias nas conexões. Realize a atualização fora dos horários de pico e certifique-se de que seu aplicativo tenha um mecanismo automático de reconexão.
NotaSe você configurou {{XREF_1}} para monitorar clusters PolarDB, poderá receber notificações sobre exceções de acesso ao cluster durante a atualização.
Durante a atualização, alguns recursos relacionados a alterações no console PolarDB ficam indisponíveis, como atualização ou redução de configurações, adição ou exclusão de nós, modificação de parâmetros e reinicialização de nós. Por outro lado, recursos relacionados a consultas — como monitoramento de desempenho — não são afetados. Após a atualização, não é possível reverter para uma versão anterior.
Para evitar interrupções prolongadas do serviço durante a mudança de versão, o sistema verifica o status do nó primário antes da transição. Se o nó primário tiver transações grandes ou um acúmulo significativo de pontos de verificação (checkpoint) no log redo e falhar repetidamente nessas verificações dentro da janela definida, a atualização será cancelada automaticamente. A versão e o estado de execução do cluster permanecem inalterados, e você receberá uma notificação correspondente. Para resolver o problema, consulte {{XREF_2}}.
Visualizar informações de versão
Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. Selecione a Região em que o cluster está implantado e clique no ID do cluster para acessar a página de detalhes.
No painel de navegação à esquerda, selecione .
Na página Minor Version Upgrade, na seção Version Information, visualize as versões do PolarProxy e do mecanismo de kernel do banco de dados.
Atualização manual
Se a versão atual do PolarProxy ou do mecanismo de kernel do banco de dados do cluster não for a mais recente, é possível atualizá-la conforme necessário.
-
Acesse o menu do cluster de destino. Na página Minor Version Upgrade, na seção Upgrade Version, escolha Upgrade PolarDB Database Proxy and Kernel, Upgrade Kernel Only ou Upgrade PolarDB Database Proxy Only conforme sua necessidade.
NotaSe a versão atual do PolarProxy ou do mecanismo de kernel do banco de dados já for a mais recente, as opções Upgrade PolarDB Database Proxy and Kernel, Upgrade Kernel Only e Upgrade PolarDB Database Proxy Only ficarão acinzentadas e indisponíveis.
Se você escolher Upgrade PolarDB Database Proxy Only, serão atualizados apenas os recursos relacionados à divisão de leitura/gravação, como o nível de consistência (consistência global), a divisão de transações e se o banco de dados primário aceita solicitações de leitura.
-
Clique em Upgrade Now ou Upgrade in Maintenance Window. Se você selecionar Upgrade in Maintenance Window, poderá visualizar os detalhes da tarefa ou cancelá-la na página Scheduled Tasks. Para mais detalhes, consulte {{XREF_3}}{{XREF_4}}{{XREF_5}}.
Importante-
Upgrade PolarDB Database Proxy and Kernel causa interrupções transitórias de 30 a 90 segundos tanto no endpoint primário quanto no endpoint do cluster. Certifique-se de que seu aplicativo tenha um mecanismo de reconexão.
NotaAlém do impacto descrito acima, a atualização de versão secundária não afeta o uso normal do cluster pelo restante do processo.
Upgrade PolarDB Database Proxy Only causa uma interrupção transitória de 30 segundos no endpoint do cluster e em endpoints personalizados. As conexões com o endpoint primário não são afetadas. Certifique-se de que seu aplicativo tenha um mecanismo de reconexão.
Upgrade Kernel Only: durante a atualização, uma versão do PolarProxy igual ou superior a 2.4.7 ou em um cluster PolarDB habilita o recurso Connection Preserving, protegendo 95% das conexões com o banco de dados contra interrupções.
-
-
Visualize o andamento da tarefa de atualização:
No cabeçalho da página de detalhes do cluster, clique no botão do ícone de tarefa à direita para abrir o painel de progresso e acompanhar o andamento da atualização.
Retorne para Clusters. No painel de navegação à esquerda, selecione , onde você pode visualizar as listas de tarefas de todos os clusters.
Tratar falhas nas verificações pré-atualização
Antes da transição da atualização, o sistema executa duas verificações no nó primário do cluster. Caso elas falhem repetidamente dentro da janela de verificação, a atualização será cancelada automaticamente. O cluster não terá sua versão alterada, e seu estado de execução permanecerá inalterado em relação ao estado anterior à atualização. Após resolver o problema, você poderá iniciar novamente a atualização.
Verificação 1: Transações grandes no nó primário
O sistema calcula o número total de linhas modificadas por todas as transações ativas não confirmadas no nó primário.
Localizar transações grandes:
-
Você pode conectar-se ao nó primário usando uma conta privilegiada e executar a instrução a seguir para verificar. A consulta dessa visualização exige a permissão
PROCESS. Também é possível visualizar transações no gerenciamento de sessões no DMS ou no DAS:-- View currently installed extensions and their versions SELECT name, installed_version FROM pg_available_extensions WHERE installed_version IS NOT NULL; -- Upgrade a specific extension (for example, vector) ALTER EXTENSION vector UPDATE; -
Um resultado nulo indica que não há transações ativas. Se o resultado mostrar transações que modificaram um grande número de linhas, execute a instrução a seguir para localizar as transações específicas:
-- View currently installed extensions and their versions SELECT name, installed_version FROM pg_available_extensions WHERE installed_version IS NOT NULL; -- Upgrade a specific extension (for example, vector) ALTER EXTENSION vector UPDATE;
Resolução:
(Recomendado. Sem impacto nas suas cargas de trabalho.) Aguarde a confirmação normal da transação e tente novamente a atualização.
-
Se você confirmar que a transação pode ser descartada, use o comando
KILLpara encerrar a sessão correspondente atrx_mysql_thread_id.Não utilize
KILL QUERY. Esse comando finaliza apenas a instrução atual; a transação permanece aberta e não é revertida, portanto a verificação ainda não passará.Após executar
KILL, a transação entra em estado de reversão (rollback) (trx_stateéROLLING BACK). Nesse período, a transação ainda aparecerá eminformation_schema.innodb_trx, e o número de linhas modificadas diminuirá gradualmente. Aguarde até que ela desapareça dos resultados da consulta antes de tentar novamente a atualização.
Recomendações de manutenção de longo prazo:
Divida operações em larga escala de INSERT ... SELECT, UPDATE e DELETE, bem como trabalhos de importação e arquivamento de dados, em pequenos lotes para envio e programe-os fora da janela de atualização.
Verificação 2: Acúmulo de log redo (redo log checkpoint backlog)
O sistema verifica a diferença entre o LSN do log redo gravado no nó primário e o LSN do ponto de verificação (checkpoint). Essa diferença indica o quanto o avanço do checkpoint está atrasado em relação às gravações. Se a diferença for excessivamente grande, a transição levará mais tempo para sincronizar, prolongando a indisponibilidade do serviço.
Consultar os LSNs:
Você pode usar uma conta privilegiada para executar a instrução a seguir:
-- View currently installed extensions and their versions
SELECT name, installed_version FROM pg_available_extensions WHERE installed_version IS NOT NULL;
-- Upgrade a specific extension (for example, vector)
ALTER EXTENSION vector UPDATE;
A diferença entre Innodb_lsn e Innodb_log_checkpoint_lsn corresponde ao acúmulo atual, em bytes.
Resolução:
Pausar operações intensivas de gravação, como importação em larga escala de dados, arquivamento e operações DDL, para reduzir a pressão de escrita.
Execute novamente a instrução anterior em intervalos e observe se a diferença continua diminuindo. Inicie novamente a atualização após a redução dessa diferença.
Lista de verificação antes de tentar novamente a atualização
O número total de linhas modificadas pelas transações ativas não confirmadas no nó primário atende ao requisito da verificação pré-atualização.
information_schema.innodb_trxnão contém nenhuma transação no estadoROLLING BACK.Innodb_lsneInnodb_log_checkpoint_lsnmostram uma diferença estável ou em queda.A atualização está programada fora dos horários de operações em massa e durante os horários de menor demanda.
Operações de API relacionadas
|
API |
Descrição |
|
{{XREF_10}} |
Consulta as informações de versão do kernel de um cluster PolarDB. |
|
{{XREF_11}} |
Atualiza a versão do kernel de um cluster PolarDB. |