Nebenversions-Upgrade für AlloyDB Omni in Kubernetes durchführen

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie ein Upgrade der Nebenversion der Datenbank für AlloyDB Omni auf Kubernetes durchführen.

Für ein Upgrade der Datenbanknebenversion gibt es zwei Möglichkeiten:

  • Upgrade mit geringer Ausfallzeit: In Hochverfügbarkeitsumgebungen (High Availability, HA), in denen AlloyDB Omni Version 15.7.1 oder höher ausgeführt wird, werden zuerst die Stand-by-Instanzen aktualisiert. Anschließend führt der AlloyDB Omni-Operator ein Switchover durch und stuft eine der aktualisierten Stand-by-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 gleichzeitiges Upgrade aller Instanzen 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 Datenverlustrisiko besteht, 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

Fügen Sie Ihrem 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 angegeben haben. Weitere Informationen finden Sie unter AlloyDB Omni auf Kubernetes installieren.

AlloyDB Omni-Version aktualisieren

Wenn Sie ein Upgrade von Version 15.12.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 15.12.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: "15.12.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 legen Sie die Anmerkung force-upgrade auf false fest.

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 HAReady in true.

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.

  1. Prüfen Sie den Status der benutzerdefinierten Switchover-Ressource, um die Ursache des Fehlers zu ermitteln.
  2. Wählen Sie eine Option unter Primäre und Standby-Instanzen mit unterschiedlichen Nebenversionen korrigieren aus.
standby instance upgrade failed but rollback succeeded.

Das Upgrade Ihrer Stand-by-Instanz ist fehlgeschlagen, aber der AlloyDB Omni-Operator hat sie erfolgreich auf die vorherige Version zurückgesetzt.

  1. Prüfen Sie die Fehlermeldungen zum Upgrade.
  2. Wählen Sie eine Option unter Primäre und Standby-Instanzen mit unterschiedlichen Nebenversionen korrigieren aus.
standby instance upgrade failed and rollback failed.

Das Upgrade Ihrer Stand-by-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 Anmerkung 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 Upgradefehler 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 und controlPlaneAgentsVersion in der Manifestdatei in die Version, die Sie zuvor verwendet haben.