Per eseguire un upgrade della versione secondaria del database, hai due opzioni:
Upgrade con downtime ridotto: questa funzionalità è in anteprima. Per gli ambienti ad alta affidabilità (HA) che eseguono AlloyDB Omni versione 15.7.1 o successive, AlloyDB Omni esegue prima l'upgrade delle istanze di standby. Poi, l'operatore AlloyDB Omni esegue un failover, promuovendo una delle istanze di standby aggiornate a nuova istanza principale. Una volta completato il failover, l'istanza principale precedente viene aggiornata.
Questa procedura garantisce un downtime minimo durante l'upgrade.
Upgrade simultaneo: il metodo di upgrade simultaneo è in disponibilità generale (GA). In tutte le altre circostanze, l'operatore AlloyDB Omni esegue l'upgrade di tutte le istanze contemporaneamente. Ciò significa che si verificherà un downtime durante l'upgrade.
Limitazioni
Per gli upgrade con downtime ridotto, un'istanza di standby non è disponibile in un determinato momento. Per assicurarti che il cluster di database non raggiunga un obiettivo del punto di ripristino (RPO) pari a zero e non rischi di perdere dati, il cluster di database deve avere un'istanza principale e almeno due istanze di standby.
Prima di iniziare
- Se il cluster è ad alta disponibilità e la versione di AlloyDB Omni è precedente alla 15.7.1, segui i passaggi elencati in Aggiornare 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.
Abilitare la procedura di upgrade della versione secondaria del database con downtime ridotto
Per abilitare la procedura di upgrade della versione secondaria del database con downtime ridotto, 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 cluster di database. È lo stesso nome del cluster di database che hai fornito quando l'hai creato. Per saperne di più, consulta Installare AlloyDB Omni su Kubernetes.
Eseguire l'upgrade della versione di AlloyDB Omni
Per eseguire l'upgrade alla versione 15.13.0, aggiorna i campi databaseVersion e controlPlaneAgentsVersion nel file manifest del cluster, quindi riapplica il file.
Di seguito è riportato l'inizio di un file manifest che specifica la versione 15.13.0 per databaseVersion e la versione 1.6.3 per controlPlaneAgentsVersion:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
databaseVersion: "DB_VERSION"
controlPlaneAgentsVersion: "CONTROL_PLANE_AGENTS_VERSION"
# It is recommended to switch to UBI9 for improved security and
# compatibility.
# If you need to stick to Debian, set this field to "Debian".
databaseImageOSType: "OS_TYPE"
...
Sostituisci la seguente variabile:
DB_CLUSTER_NAME: il nome del cluster di database. È lo stesso nome del cluster di database che hai fornito quando l'hai creato. Per saperne di più, consulta Installare AlloyDB Omni su Kubernetes.DB_VERSION: la versione del database di cui stai eseguendo l'upgrade.CONTROL_PLANE_AGENTS_VERSION: la versione degli agenti del control plane.OS_TYPE: (facoltativo) Il sistema operativo di base per l'immagine del database. I valori validi sonoDebianeUBI9. Se non lo specifichi, l'operatore lo imposta automaticamente suDebiansedatabaseVersionè inferiore a16.9.0e suUBI9sedatabaseVersionè16.9.0o versioni successive.
Monitorare la procedura di upgrade
Dopo aver aggiornato il file manifest, l'operatore AlloyDB Omni avvia la procedura di upgrade. Per monitorare la procedura 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 cluster di database. È lo stesso nome del cluster di database che hai fornito quando l'hai creato. Per saperne di più, consulta Installare AlloyDB Omni su Kubernetes.
Durante la procedura, lo stato è true. Al termine della procedura, lo stato della condizione diventa false.
Risoluzione dei problemi
Se ricevi messaggi di errore durante la procedura di upgrade, consulta le seguenti sezioni:
Errori pre-upgrade
Se ricevi un errore pre-upgrade nel cluster di database, controlla il messaggio e risolvi il problema di conseguenza.
Se vuoi ignorare il messaggio di errore pre-upgrade, puoi abilitare 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 cluster di database. È lo stesso nome del cluster di database che hai fornito quando l'hai creato. Per saperne di più, consulta Installare AlloyDB Omni su Kubernetes.
Al termine della procedura di upgrade, imposta l'annotazione force-upgrade su false.
Errori di upgrade
Durante la procedura di upgrade automatico, potrebbero verificarsi diversi punti in cui potrebbe non riuscire negli ambienti ad alta disponibilità. Per saperne di più su ogni 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)
|
La procedura di upgrade è riuscita, ma l'istanza di standby non ha raggiunto l'istanza principale per stabilire la replica sincrona.
Un'elevata quantità di traffico viene inviata all'istanza principale. Man mano che il traffico
diminuisce, l'istanza di standby si aggiorna gradualmente. Una volta completata questa operazione, la |
Scegli un'opzione in Correggere le istanze principali 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 è riuscito, ma la procedura di failover non è riuscita. |
|
standby instance upgrade failed but rollback succeeded.
|
L'upgrade dell'istanza di standby non è riuscito, ma l' operatore AlloyDB Omni l'ha ripristinata alla versione precedente. |
|
standby instance upgrade failed and rollback failed.
|
L'upgrade dell'istanza di standby non è riuscito e l' operatore AlloyDB Omni non può ripristinare l'istanza alla versione precedente. |
Contatta l'Assistenza Google per risolvere il problema. |
Correggere le istanze principali e di 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 a eseguire l'upgrade, rimuovi l'annotazione
start-timedell'upgrade 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 cluster di database. È lo stesso nome del cluster di database che hai fornito quando l'hai creato. Per saperne di più, 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,controlPlaneAgentsVersionedatabaseImageOSTypenel file manifest alla versione che utilizzavi in precedenza.