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

Wählen Sie eine Dokumentenversion aus:

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

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

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 sind Debian und UBI9. Wenn Sie nichts angeben, wird der Operator automatisch auf Debian gesetzt, wenn databaseVersion kleiner als 16.9.0 ist, und auf UBI9, wenn databaseVersion 16.9.0 oder 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 HAReady Bedingung zu 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.

Die 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 der Standby-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 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-time des 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, controlPlaneAgentsVersion und databaseImageOSType in der Manifestdatei in die Version, die Sie zuvor verwendet haben.