Faça uma atualização da versão secundária da base de dados para o AlloyDB Omni no Kubernetes

Selecione uma versão da documentação:

Esta página descreve como fazer uma atualização da versão secundária da base de dados para o AlloyDB Omni no Kubernetes.

Para fazer uma atualização da versão secundária da base de dados, existem duas opções:

  • Atualização com pouco tempo de inatividade: para ambientes de alta disponibilidade (HA) com a versão 15.7.1 ou posterior do AlloyDB Omni, o AlloyDB Omni atualiza primeiro as instâncias em espera. Em seguida, o operador do AlloyDB Omni executa uma comutação, promovendo uma das instâncias de standby atualizadas para ser a sua nova instância principal. Após a mudança bem-sucedida, a sua instância principal antiga é atualizada.

    Este processo garante um tempo de inatividade mínimo durante a atualização.

  • Atualização simultânea: em todas as outras circunstâncias, o operador do AlloyDB Omni atualiza todas as instâncias em simultâneo. Isto significa que vai ter um período de inatividade durante a atualização.

Limitações

Para atualizações com pouco tempo de inatividade, uma instância de espera está indisponível em qualquer altura. Para garantir que o cluster da base de dados não atinge o objetivo de ponto de recuperação (RPO) zero e não corre o risco de perder dados, o cluster da base de dados tem de ter uma instância principal e, pelo menos, duas instâncias de reserva.

Antes de começar

Ative o processo de atualização da versão da base de dados secundária com tempo de inatividade reduzido

Para ativar o processo de atualização da versão secundária da base de dados com tempo de inatividade reduzido, adicione a seguinte anotação ao cluster da base de dados.

kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME
dbcluster.dbadmin.goog/enableLDTM=true

Substitua a seguinte variável:

  • DB_CLUSTER_NAME: o nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que indicou quando o criou. Para mais informações, consulte o artigo Instale o AlloyDB Omni no Kubernetes.

Atualize a versão do AlloyDB Omni

Para atualizar a versão 16.8.0, atualize os campos databaseVersion e controlPlaneAgentsVersion no ficheiro do manifesto do cluster e, em seguida, volte a aplicar o ficheiro.

Segue-se o início de um ficheiro de manifesto que especifica a versão 16.8.0 para databaseVersion e a versão 1.5.0 para controlPlaneAgentsVersion:

apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
    name: DB_CLUSTER_NAME
spec:
    databaseVersion: "16.8.0"
    controlPlaneAgentsVersion: "1.5.0"
...

Substitua a seguinte variável:

  • DB_CLUSTER_NAME: o nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que indicou quando o criou. Para mais informações, consulte o artigo Instale o AlloyDB Omni no Kubernetes.

Monitorize o processo de atualização

Depois de atualizar o ficheiro de manifesto, o operador do AlloyDB Omni inicia o processo de atualização. Para monitorizar o processo de atualização, verifique a condição DBCUpgradeInProgress.

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o yaml | yq '.status.conditions[] | select(.type == "DBCUpgradeInProgress")'

Substitua a seguinte variável:

  • DB_CLUSTER_NAME: o nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que indicou quando o criou. Para mais informações, consulte o artigo Instale o AlloyDB Omni no Kubernetes.

Enquanto o processo está em curso, o estado é true. Quando o processo estiver concluído, o estado da condição é alterado para false.

Resolução de problemas

Se receber mensagens de falha durante o processo de atualização, consulte as secções seguintes:

Falhas pré-atualização

Se receber uma falha de pré-atualização no cluster da base de dados, verifique a mensagem e resolva o problema em conformidade.

Se quiser ignorar a mensagem de falha da pré-atualização, pode ativar a anotação force-upgrade.

kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME upgrade.alloydbomni.dbadmin.google/force-upgrade=true

Substitua a seguinte variável:

  • DB_CLUSTER_NAME: o nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que indicou quando o criou. Para mais informações, consulte o artigo Instale o AlloyDB Omni no Kubernetes.

Após a conclusão do processo de atualização, defina a anotação force-upgrade como false.

Falhas na atualização

Durante o processo de atualização automática, existem vários pontos em que pode falhar em ambientes de HA. Para mais informações sobre cada cenário de falha e as ações subsequentes que o operador do AlloyDB Omni realiza, consulte a tabela seguinte.

Mensagem de falha Descrição Ações necessárias do utilizador
standby instance upgrade succeeded but the replication lag of the standby(s) is too high to be promoted to synchronous standby(s)

O processo de atualização foi bem-sucedido, mas a instância de espera não alcançou a instância principal para estabelecer a replicação síncrona.

Uma grande quantidade de tráfego é direcionada para a instância principal. À medida que o tráfego diminui, a instância de espera atualiza-se gradualmente. Depois de isto acontecer, a condição HAReady passa a true.

Escolha uma opção em Corrija instâncias primárias e de espera com versões secundárias diferentes .

all standbys upgrade succeeded but the switchover instance failed to promote an upgraded standby.

As suas instâncias de espera foram atualizadas com êxito, mas o processo de comutação falhou.

  1. Verifique o estado do recurso personalizado de comutação para determinar o que causou a falha.
  2. Escolha uma opção em Corrija instâncias primárias e de espera com versões secundárias diferentes .
standby instance upgrade failed but rollback succeeded.

A sua instância de espera não foi atualizada com êxito, mas o operador do AlloyDB Omni restaurou-a com êxito para a versão anterior.

  1. Verifique as mensagens de falha na atualização.
  2. Escolha uma opção em Corrija instâncias primárias e de espera com versões secundárias diferentes .
standby instance upgrade failed and rollback failed.

A sua instância de espera não foi atualizada com êxito e o operador do AlloyDB Omni não consegue restaurar a instância para a versão anterior.

Contacte o Apoio técnico da Google para resolver problemas.

Corrija instâncias primárias e de reserva com versões secundárias diferentes

Para resolver este problema, escolha uma das seguintes opções:

  • Se o problema que causou a falha da atualização for corrigido, tente novamente a atualização.

    Para repetir a atualização, remova a anotação start-time da atualização da sua instância. Depois de remover a anotação, o operador do AlloyDB Omni gera uma nova hora de início e reinicia o processo de atualização.

    kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME upgrade.alloydbomni.dbadmin.google/start-time-
    

    Substitua a seguinte variável:

    • DB_CLUSTER_NAME: o nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que indicou quando o criou. Para mais informações, consulte o artigo Instale o AlloyDB Omni no Kubernetes.
  • Se o problema que causou a falha na atualização persistir, faça o downgrade da instância para a versão anterior do operador do AlloyDB Omni.

    Para reverter a sua instância, siga o processo de atualização e altere os campos databaseVersion e controlPlaneAgentsVersion no ficheiro de manifesto para a versão que usou anteriormente.