Esegui l'upgrade di una versione secondaria del database per AlloyDB Omni su Kubernetes

Seleziona una versione della documentazione:

Questa pagina descrive come eseguire un upgrade della versione secondaria del database per AlloyDB Omni su Kubernetes.

Per eseguire l'upgrade di una versione secondaria del database, hai due opzioni:

  • Upgrade con tempi di inattività ridotti: per gli ambienti ad alta disponibilità (HA) che eseguono AlloyDB Omni versione 15.7.1 o successive, AlloyDB Omni esegue l'upgrade prima delle istanze di standby. Quindi, l'operatore AlloyDB Omni esegue un cambio di ruolo, promuovendo una delle istanze di standby aggiornate a nuova istanza principale. Una volta riuscito il trasferimento, la vecchia istanza principale viene aggiornata.

    Questa procedura garantisce un downtime minimo durante l'upgrade.

  • Upgrade simultaneo: in tutte le altre circostanze, l'operatore AlloyDB Omni esegue l'upgrade di tutte le istanze contemporaneamente. Ciò significa che si verificherà un tempo di inattività durante l'upgrade.

Limitazioni

Per gli upgrade con tempi di inattività ridotti, un'istanza di standby non è disponibile in un determinato momento. Per garantire che il cluster di database non raggiunga l'obiettivo del punto di ripristino (RPO) pari a zero e non rischi di perdere dati, deve avere un'istanza principale e almeno due istanze di standby.

Prima di iniziare

  • Se il tuo cluster è HA e la versione di AlloyDB Omni è precedente alla 15.7.1, segui i passaggi elencati in Aggiorna i cluster di database prima di seguire questa procedura di upgrade della versione secondaria.
  • Identifica un periodo di traffico ridotto in cui puoi eseguire l'upgrade della versione secondaria.
  • Per evitare la perdita di dati, esegui il backup dei dati.

Abilita la procedura di upgrade della versione secondaria del database con tempi di inattività ridotti

Per abilitare il processo di upgrade della versione secondaria del database con tempi di inattività ridotti, aggiungi la seguente annotazione al cluster di database.

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

Sostituisci la seguente variabile:

  • DB_CLUSTER_NAME: il nome del tuo cluster di database. Si tratta dello stesso nome del cluster di database che hai fornito al momento della creazione. Per ulteriori informazioni, consulta Installare AlloyDB Omni su Kubernetes.

Esegui l'upgrade della versione di AlloyDB Omni

Per eseguire l'upgrade alla versione 16.8.0, aggiorna i campi databaseVersion e controlPlaneAgentsVersion nel file manifest del cluster, quindi applica di nuovo il file.

Di seguito è riportato l'inizio di un file manifest che specifica la versione 16.8.0 per databaseVersion e la versione 1.5.0 per controlPlaneAgentsVersion:

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

Sostituisci la seguente variabile:

  • DB_CLUSTER_NAME: il nome del tuo cluster di database. Si tratta dello stesso nome del cluster di database che hai fornito al momento della creazione. Per ulteriori informazioni, consulta Installare AlloyDB Omni su Kubernetes.

Monitorare il processo di upgrade

Dopo aver aggiornato il file manifest, l'operatore AlloyDB Omni avvia la procedura di upgrade. Per monitorare il processo di upgrade, controlla la condizione DBCUpgradeInProgress.

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

Sostituisci la seguente variabile:

  • DB_CLUSTER_NAME: il nome del tuo cluster di database. Si tratta dello stesso nome del cluster di database che hai fornito al momento della creazione. Per ulteriori informazioni, consulta Installare AlloyDB Omni su Kubernetes.

Mentre il processo è in corso, lo stato è true. Al termine del processo, lo stato della condizione cambia in false.

Risoluzione dei problemi

Se ricevi messaggi di errore durante la procedura di upgrade, consulta le sezioni seguenti:

Errori pre-upgrade

Se ricevi un errore pre-upgrade sul cluster di database, controlla il messaggio e risolvi il problema di conseguenza.

Se vuoi ignorare il messaggio di errore pre-upgrade, puoi attivare l'annotazione force-upgrade.

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

Sostituisci la seguente variabile:

  • DB_CLUSTER_NAME: il nome del tuo cluster di database. Si tratta dello stesso nome del cluster di database che hai fornito al momento della creazione. Per ulteriori informazioni, consulta Installare AlloyDB Omni su Kubernetes.

Al termine della procedura di upgrade, imposta l'annotazione force-upgrade su false.

Errori di upgrade

Durante il processo di upgrade automatico, ci sono diversi punti in cui potrebbe non riuscire negli ambienti HA. Per saperne di più su ciascuno scenario di errore e sulle azioni successive intraprese dall'operatore AlloyDB Omni, consulta la tabella seguente.

Messaggio di errore Descrizione Azioni utente richieste
standby instance upgrade succeeded but the replication lag of the standby(s) is too high to be promoted to synchronous standby(s)

Il processo di upgrade è riuscito, ma l'istanza di standby non ha raggiunto l'istanza primaria per stabilire la replica sincrona.

Un volume elevato di traffico viene indirizzato all'istanza principale. Man mano che il traffico diminuisce, l'istanza di standby recupera gradualmente. Dopo questo evento, la condizione HAReady diventa true.

Scegli un'opzione in Correggi le istanze primaria e di standby con versioni secondarie diverse .

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

L'upgrade delle istanze di standby è stato completato, ma il processo di switchover non è riuscito.

  1. Controlla lo stato della risorsa personalizzata di switchover per determinare la causa dell'errore.
  2. Scegli un'opzione in Correzione delle istanze primaria e di standby con versioni secondarie diverse .
standby instance upgrade failed but rollback succeeded.

L'upgrade dell'istanza di standby non è andato a buon fine, ma l'operatore AlloyDB Omni l'ha ripristinata alla versione precedente correttamente.

  1. Controlla i messaggi di errore dell'upgrade.
  2. Scegli un'opzione in Correzione delle istanze primaria e di standby con versioni secondarie diverse .
standby instance upgrade failed and rollback failed.

L'upgrade dell'istanza di standby non è andato a buon fine e l'operatore AlloyDB Omni non può ripristinare la versione precedente dell'istanza.

Contatta l'Assistenza Google per risolvere il problema.

Correggere le istanze primaria e in standby con versioni secondarie diverse

Per risolvere il problema, scegli una delle seguenti opzioni:

  • Se il problema che ha causato l'errore di upgrade è stato risolto, riprova a eseguire l'upgrade.

    Per riprovare l'upgrade, rimuovi l'annotazione start-time dall'istanza. Dopo aver rimosso l'annotazione, l'operatore AlloyDB Omni genera un nuovo orario di inizio e riavvia la procedura di upgrade.

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

    Sostituisci la seguente variabile:

    • DB_CLUSTER_NAME: il nome del tuo cluster di database. Si tratta dello stesso nome del cluster di database che hai fornito al momento della creazione. Per ulteriori informazioni, consulta Installare AlloyDB Omni su Kubernetes.
  • Se il problema che ha causato l'errore di upgrade persiste, esegui il downgrade dell'istanza alla versione precedente dell'operatore AlloyDB Omni.

    Per eseguire il downgrade dell'istanza, segui la procedura di upgrade e modifica i campi databaseVersion e controlPlaneAgentsVersion nel file manifest con la versione che utilizzavi in precedenza.