Für ein Upgrade der Datenbanknebenversion haben Sie zwei Möglichkeiten:
Upgrade mit geringer Ausfallzeit: Dieses Feature befindet sich im Vorschaumodus. In Umgebungen mit Hochverfügbarkeit (HA) , in denen AlloyDB Omni Version 15.7.1 oder höher ausgeführt wird, werden zuerst die Standby-Instanzen von AlloyDB Omni 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 die alte primäre Instanz aktualisiert.
Dieser Vorgang sorgt für minimale Ausfallzeiten während des Upgrades.
Gleichzeitiges Upgrade: Die Methode für das gleichzeitiges Upgrade ist allgemein verfügbar (GA). In allen anderen Fällen aktualisiert der AlloyDB Omni-Operator alle Instanzen gleichzeitig. Das bedeutet, dass es während des Upgrades zu Ausfallzeiten kommt.
Beschränkungen
Bei Upgrades mit geringer Ausfallzeit ist jeweils eine Standby-Instanz nicht verfügbar. Damit der Datenbankcluster nicht den Recovery Point Objective (RPO) von null erreicht und kein Datenverlustrisiko besteht, muss der Datenbankcluster eine primäre Instanz und mindestens zwei Standby-Instanzen haben.
Vor dem Start
- Wenn Ihr Cluster HA ist und die AlloyDB Omni-Version älter als 15.7.1 ist, folgen Sie der Anleitung unter Datenbankcluster aktualisieren , bevor Sie mit diesem Upgrade der Nebenversion fortfahren.
- Suchen Sie einen Zeitraum mit wenig Traffic, in dem Sie das Upgrade der Nebenversion durchführen können.
- Sichern Sie Ihre Daten, um Datenverlust zu vermeiden.
Upgrade der Datenbanknebenversion mit geringer Ausfallzeit aktivieren
Fügen Sie dem Datenbankcluster die folgende Annotation hinzu, um das Upgrade der Datenbanknebenversion mit geringer Ausfallzeit zu aktivieren.
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 des Clusters angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni in Kubernetes installieren.
AlloyDB Omni-Version aktualisieren
Wenn Sie ein Upgrade von Version 15.13.0 durchführen möchten, aktualisieren Sie die Felder databaseVersion und controlPlaneAgentsVersion in der Manifestdatei des Clusters und wenden Sie die Datei noch einmal an.
Im Folgenden sehen Sie den Anfang einer Manifestdatei, in der Version 15.13.0 für databaseVersion und Version 1.6.3 für controlPlaneAgentsVersion angegeben sind:
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"
...
Ersetzen Sie die folgende Variable:
DB_CLUSTER_NAME: der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni in Kubernetes installieren.DB_VERSION: die Version der Datenbank, auf die Sie ein Upgrade durchführen.CONTROL_PLANE_AGENTS_VERSION: die Version der Steuerungsebene-Agents.OS_TYPE: optional. Das Basisbetriebssystem für das Datenbank-Image. Gültige Werte sindDebianundUBI9. Wenn Sie nichts angeben, wird der Operator automatisch aufDebiangesetzt, wenndatabaseVersionkleiner als16.9.0ist, und aufUBI9, wenndatabaseVersion16.9.0oder höher ist.
Upgrade beobachten
Nachdem Sie die Manifestdatei aktualisiert haben, startet der AlloyDB Omni-Operator das Upgrade. Prüfen Sie die Bedingung DBCUpgradeInProgress, um den Upgrade-Vorgang zu beobachten.
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 des Clusters angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni in Kubernetes installieren.
Während des Vorgangs ist 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 eine Fehlermeldung 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 des Clusters angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni in Kubernetes installieren.
Nach Abschluss des Upgrades setzen Sie die Annotation 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ßer Teil des Traffics geht an die primäre Instanz. Wenn der Traffic
abnimmt, holt die Standby-Instanz allmählich auf. Danach wird die |
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.
|
Die Standby-Instanzen wurden erfolgreich aktualisiert, aber der Switchover Vorgang ist fehlgeschlagen. |
|
standby instance upgrade failed but rollback succeeded.
|
Das Upgrade der 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 der 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 Upgradefehler verursacht hat, behoben wurde, versuchen Sie es noch einmal.
Entfernen Sie die Annotation
start-timedes Upgrades aus der Instanz, um das Upgrade noch einmal zu versuchen. Nachdem Sie die Annotation entfernt haben, generiert der AlloyDB Omni-Operator eine neue Startzeit und startet das Upgrade noch einmal.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 des Clusters angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni in Kubernetes installieren.
Wenn das Problem, das den Upgradefehler verursacht hat, weiterhin besteht, führen Sie ein Downgrade der Instanz auf die vorherige Version des AlloyDB Omni-Operators durch.
Folgen Sie der Anleitung für das Upgrade um ein Downgrade der Instanz durchzuführen, und ändern Sie die Felder
databaseVersion,controlPlaneAgentsVersionunddatabaseImageOSTypein der Manifestdatei in die Version, die Sie zuvor verwendet haben.