Auf dieser Seite wird beschrieben, wie Sie ein Upgrade der Datenbank-Nebenversion für AlloyDB Omni in Kubernetes durchführen.
Für das Upgrade einer Nebenversion der Datenbank gibt es zwei Möglichkeiten:
Upgrade mit geringer Ausfallzeit: In Hochverfügbarkeitsumgebungen (HA) mit AlloyDB Omni-Version 15.7.1 oder höher werden zuerst die Standby-Instanzen aktualisiert. Anschließend führt der AlloyDB Omni-Operator einen Switchover durch und stuft eine der aktualisierten Standby-Instanzen zur neuen primären Instanz hoch. Nach dem erfolgreichen Switchover wird Ihre alte primäre Instanz aktualisiert.
So wird die Ausfallzeit während des Upgrades minimiert.
Gleichzeitiges Upgrade: In allen anderen Fällen führt der AlloyDB Omni-Operator ein Upgrade aller Instanzen gleichzeitig durch. Das bedeutet, dass es während des Upgrades zu Ausfallzeiten kommt.
Beschränkungen
Bei Upgrades mit geringen Ausfallzeiten ist jeweils eine Standby-Instanz nicht verfügbar. Damit Ihr Datenbankcluster nicht den RPO-Wert 0 erreicht und kein Datenverlust droht, muss er eine primäre Instanz und mindestens zwei Standby-Instanzen haben.
Vor dem Start
- Wenn Ihr Cluster hochverfügbar ist und die AlloyDB Omni-Version älter als 15.7.1 ist, folgen Sie der Anleitung unter Datenbankcluster aktualisieren, bevor Sie dieses Verfahren zum Aktualisieren der Nebenversion ausführen.
- Suchen Sie nach einem Zeitraum mit geringem Traffic, in dem Sie das Upgrade auf die Nebenversion durchführen können.
- Sichern Sie Ihre Daten, um Datenverlust zu vermeiden.
Prozess für das Upgrade von Datenbanknebenversionen mit geringer Ausfallzeit aktivieren
Wenn Sie das Upgrade der Datenbanknebenversion mit geringer Ausfallzeit aktivieren möchten, fügen Sie Ihrem Datenbankcluster die folgende Annotation hinzu.
kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME dbcluster.dbadmin.goog/enableLDTM=true
Ersetzen Sie die folgende Variable:
DB_CLUSTER_NAME
: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni auf Kubernetes installieren.
AlloyDB Omni-Version aktualisieren
Wenn Sie ein Upgrade von Version 16.8.0 durchführen möchten, aktualisieren Sie die Felder databaseVersion
und controlPlaneAgentsVersion
in der Manifestdatei des Clusters und wenden Sie die Datei dann noch einmal an.
Im Folgenden sehen Sie den Anfang einer Manifestdatei, in der Version 16.8.0 für databaseVersion
und Version 1.5.0 für controlPlaneAgentsVersion
angegeben ist:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
databaseVersion: "16.8.0"
controlPlaneAgentsVersion: "1.5.0"
...
Ersetzen Sie die folgende Variable:
DB_CLUSTER_NAME
: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni auf Kubernetes installieren.
Upgrade-Prozess überwachen
Nachdem Sie die Manifestdatei aktualisiert haben, startet der AlloyDB Omni-Operator den Upgradevorgang. Prüfen Sie den Zustand DBCUpgradeInProgress
, um den Upgrade-Prozess zu überwachen.
kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o yaml | yq '.status.conditions[] | select(.type == "DBCUpgradeInProgress")'
Ersetzen Sie die folgende Variable:
DB_CLUSTER_NAME
: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni auf Kubernetes installieren.
Während des Vorgangs lautet der Status true
. Wenn der Vorgang abgeschlossen ist, ändert sich der Status der Bedingung in false
.
Fehlerbehebung
Wenn Sie während des Upgrades Fehlermeldungen erhalten, lesen Sie die folgenden Abschnitte:
Fehler vor dem Upgrade
Wenn Sie einen Fehler vor dem Upgrade für Ihren Datenbankcluster erhalten, prüfen Sie die Meldung und beheben Sie das Problem entsprechend.
Wenn Sie die Fehlermeldung vor dem Upgrade umgehen möchten, können Sie die Annotation force-upgrade
aktivieren.
kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME upgrade.alloydbomni.dbadmin.google/force-upgrade=true
Ersetzen Sie die folgende Variable:
DB_CLUSTER_NAME
: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni auf Kubernetes installieren.
Nach Abschluss des Upgrades setzen Sie die Anmerkung force-upgrade
auf false
.
Upgradefehler
Während des automatischen Upgrades kann es in HA-Umgebungen an mehreren Stellen zu Fehlern kommen. Weitere Informationen zu den einzelnen Fehlerszenarien und den nachfolgenden Aktionen des AlloyDB Omni-Operators finden Sie in der folgenden Tabelle.
Fehlermeldung | Beschreibung | Erforderliche Nutzeraktionen |
---|---|---|
standby instance upgrade succeeded but the replication lag of the standby(s) is too high to be promoted to synchronous standby(s)
|
Das Upgrade wurde erfolgreich durchgeführt, aber die Standby-Instanz hat die primäre Instanz nicht eingeholt, um die synchrone Replikation einzurichten.
Ein Großteil des Traffics wird an die primäre Instanz gesendet. Wenn der Traffic abnimmt, holt die Standby-Instanz allmählich auf. Danach ändert sich die Bedingung |
Wählen Sie eine Option unter Primäre und Standby-Instanzen mit unterschiedlichen Nebenversionen korrigieren aus. |
all standbys upgrade succeeded but the switchover instance failed
to promote an upgraded standby.
|
Ihre Standby-Instanzen wurden erfolgreich aktualisiert, aber der Switchover-Vorgang ist fehlgeschlagen. |
|
standby instance upgrade failed but rollback succeeded.
|
Das Upgrade Ihrer Standby-Instanz ist fehlgeschlagen, aber der AlloyDB Omni-Operator hat sie erfolgreich auf die vorherige Version zurückgesetzt. |
|
standby instance upgrade failed and rollback failed.
|
Das Upgrade Ihrer Standby-Instanz ist fehlgeschlagen und der AlloyDB Omni-Operator kann die Instanz nicht auf die vorherige Version zurücksetzen. |
Wenden Sie sich an den Google-Support , um das Problem zu beheben. |
Primäre und Standby-Instanzen mit unterschiedlichen Nebenversionen korrigieren
Wählen Sie eine der folgenden Optionen, um dieses Problem zu beheben:
Wenn das Problem, das den Upgrade-Fehler verursacht hat, behoben wurde, versuchen Sie es noch einmal.
Wenn Sie das Upgrade noch einmal versuchen möchten, entfernen Sie die Annotation
start-time
des Upgrades aus Ihrer Instanz. Nachdem Sie die Annotation entfernt haben, generiert der AlloyDB Omni-Operator eine neue Startzeit und startet den Upgradevorgang neu.kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME upgrade.alloydbomni.dbadmin.google/start-time-
Ersetzen Sie die folgende Variable:
DB_CLUSTER_NAME
: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni auf Kubernetes installieren.
Wenn das Problem, das den Upgrade-Fehler verursacht hat, weiterhin besteht, führen Sie ein Downgrade Ihrer Instanz auf die vorherige AlloyDB Omni-Operatorversion durch.
Wenn Sie ein Downgrade Ihrer Instanz durchführen möchten, folgen Sie der Aktualisierungsanleitung und ändern Sie die Felder
databaseVersion
undcontrolPlaneAgentsVersion
in der Manifestdatei in die Version, die Sie zuvor verwendet haben.