Upgrade auf AlloyDB Omni-Version 15.7.1 auf einer VM

Wählen Sie eine Dokumentenversion aus:

Auf dieser Seite finden Sie eine Anleitung zur Migration von Version 15.5.2 und früher zur neuesten Version von AlloyDB Omni.

Ab AlloyDB Omni 15.5.4 steuern Sie AlloyDB Omni mit gängigen Paketverwaltungstools.

Wenn Sie bereits eine Installation von AlloyDB Omni haben, folgen Sie der Anleitung auf dieser Seite, um zur neuen Installation mit einem einzelnen Image zu migrieren.

Vorbereitung

Bevor Sie mit dem Upgrade auf die neueste Version von AlloyDB Omni beginnen können, müssen Sie die folgenden Voraussetzungen erfüllen, falls noch nicht geschehen.

Upgrade auf AlloyDB Omni 15.5.2

Die neueste AlloyDB Omni-Version, die die AlloyDB Omni CLI unterstützt, ist 15.5.2. Führen Sie den folgenden Befehl aus, um die Version von AlloyDB Omni zu prüfen:

sudo alloydb version

Die Ausgabe sieht dann ungefähr so aus:

AlloyDB Omni CLI version: 1.6
AlloyDB Omni database server version: 15.5.2

Wenn in der Ausgabe eine Datenbankversion vor 15.5.2 angezeigt wird, führen Sie den folgenden Befehl aus, um ein Upgrade durchzuführen:

sudo alloydb database-server upgrade

Informationen zur vorhandenen Installation erfassen

  1. Führen Sie dazu diesen Befehl aus:

    cat /var/alloydb/config/dataplane.conf
  2. Notieren Sie sich in der Ausgabe des Befehls cat die Werte der folgenden Variablen:

    • DATADIR_PATH – z. B. /var/alloydb/main
    • ENABLE_ALLOYDB_AI – z. B. FALSE
    • PGPORT – z. B. 5432
    • INSTANCE_TYPE – z. B. PRIMARY/READ_REPLICA

Mit der Erweiterung postgres_ann erstellte ScaNN-Indexe löschen

Die Erweiterung postgres_ann wurde in alloydb_scann umbenannt. Wenn Sie die Erweiterung postgres_ann installiert und mit der Erweiterung ScaNN-Indexe erstellt haben, müssen Sie alle ScaNN-Indexe löschen und die Erweiterung deinstallieren, bevor Sie ein Upgrade durchführen.

So gehen Sie vor, um Auswirkungen auf Ihre Datenbank aufgrund der Umbenennung der Erweiterung postgres_ann zu vermeiden:

  1. AlloyDB Omni ausführen und eine Verbindung dazu herstellen.
  2. Alle Tabellen ermitteln, die den ScaNN-Index verwenden.

     \c DATABASE_NAME
     select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;

    Ersetzen Sie DATABASE_NAME durch den Namen der Datenbank, in der Sie die Abfrage ausführen möchten.

  3. Indexdefinitionen und -parameter als Dump-DDL mit einem Dienstprogramm wie pg_dump speichern, um die ScaNN-Indexe später neu zu erstellen.

    pg_dump -st TABLE_NAME DATABASE_NAME

    Ersetzen Sie Folgendes:

    • DATABASE_NAME: der Name der Datenbank
    • TABLE_NAME: der Name der Tabelle
  4. ScaNN-Indexe löschen, die mit dem postgres_ann-Index erstellt wurden.

    DROP INDEX INDEX_NAME;

    Ersetzen Sie INDEX_NAME durch den Namen der Datenbank, in der Sie die Abfrage ausführen möchten.

  5. Prüfen Sie, ob keine Ihrer Datenbanken ScaNN-Indexe enthält. Verwenden Sie die folgende SQL-Abfrage, um die Löschung zu prüfen: Die folgende SQL-Abfrage sollte ein leeres Ergebnisset zurückgeben.

     \c DATABASE_NAME
     select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
  6. Die Erweiterung postgres_ann löschen:

    1. Prüfen Sie, ob die Erweiterung postgres_ann in Ihrer Datenbank installiert ist.
    select * from pg_extension;
    1. Die Erweiterung postgres_ann löschen.
    DROP EXTENSION postgres_ann CASCADE;
    1. Prüfen Sie, ob die Erweiterung postgres_ann nicht mehr in Ihrer Datenbank installiert ist.
    select * from pg_extension;

Direktes Upgrade ausführen

  1. Vorhandene Datenbank beenden:

    sudo alloydb database-server stop
  2. Neues AlloyDB Omni-Image starten und das vorhandene Datenverzeichnis von vorher einbinden:

    docker run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=PASSWORD \
        -e PGDATA=/var/lib/postgresql/data \
        -v /var/alloydb/main/data:/var/lib/postgresql/data \
        -v /dev/shm:/dev/shm \
        -p PGPORT:5432 \
        --network=host \
        --ulimit=nice=-20:-20 \
        --ulimit=core=-1:-1 \
        --log-driver=journald \
        -d google/alloydbomni

    Ersetzen Sie Folgendes:

    • CONTAINER_NAME: Der Name, der diesem neuen AlloyDB Omni-Container in der Container Registry Ihres Hostcomputers zugewiesen werden soll, z. B. my-omni.

    • PASSWORD: Das Passwort, das dem postgres-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.

    • PGPORT: Die IP-Adresse des Ports, auf dem AlloyDB Omni ausgeführt wird. Dies ist der Wert, den Sie in Schritt 2 von Informationen zur vorhandenen Installation erfassen notiert haben.

    Die Argumente für docker run sind dieselben wie in früheren Versionen von AlloyDB Omni, können aber weiter angepasst werden. Weitere Informationen finden Sie unter AlloyDB Omni-Installation anpassen.

  3. Wenn der Datenbankinstanztyp PRIMARY ist, führen Sie den folgenden Befehl aus, um die folgenden Nutzer zu erstellen. Dies sind Nutzernamen, die derzeit nicht verwendet werden, aber für zukünftige Erweiterungen reserviert sind.

    for name in alloydbagent alloydbexport alloydbiamgroupuser alloydbiamuser alloydbimportexport alloydbobservability alloydbsqllogical alloydbsuperuser; do
      echo docker exec -it CONTAINER_NAME psql -h localhost -U postgres alloydbadmin \
        -c "CREATE ROLE ${name} NOLOGIN;" \
        -c "CREATE TABLE ${name}_table();" \
        -c "ALTER TABLE ${name}_table OWNER TO ${name};"
    done
  4. Wenn ENABLE_ALLOYDB_AI auf TRUE gesetzt ist, folgen Sie der Anleitung unter AlloyDB Omni mit AlloyDB AI installieren, um AlloyDB AI einzurichten.

  5. Stellen Sie eine Verbindung zur Datenbank her, um zu prüfen, ob die Daten unverändert sind:

    docker exec -it CONTAINER_NAME psql -h localhost -U postgres
  6. Deinstallieren Sie die AlloyDB Omni CLI:

    sudo alloydb database-server uninstall

    Die Deinstallation der AlloyDB Omni CLI hat keine Auswirkungen auf Ihre in AlloyDB Omni gespeicherten Daten.

ScaNN-Indexe mit der Erweiterung alloydb_scann neu erstellen

Nach dem Upgrade von AlloyDB Omni wird auch die Erweiterung alloydb_scann installiert. Führen Sie die folgenden Schritte aus, um die ScaNN-Indexe neu zu erstellen, die Sie im Abschnitt Mit der Erweiterung postgres_ann erstellte ScaNN-Indexe löschen vor dem Upgrade gelöscht haben.

  1. Die Erweiterung alloydb_scann erstellen:

    1. Führen Sie die folgende Abfrage aus, um die Erweiterung alloydb_scann zu erstellen:
    create extension alloydb_scann cascade;
    1. Prüfen Sie, ob die Erweiterung alloydb_scann erfolgreich erstellt wurde.
    select * from pg_extension;
  2. ScaNN-Index für Ihre Tabelle neu erstellen und dann die vorherigen pg_dump-DDL-Indexdefinitionen wiederherstellen.

    1. ScaNN-Index für die Tabelle erstellen:
    CREATE INDEX INDEX_NAME ON TABLE_NAME
        USING scann (VECTOR_COLUMN DISTANCE)
        WITH (num_leaves = NUM_LEAVES_VALUE);

    Ersetzen Sie Folgendes:

    • INDEX_NAME: der Name des Index
    • TABLE_NAME: der Name der Tabelle
    • VECTOR_COLUMN: der Name der Spalte, in der Vektordaten gespeichert sind
    • DISTANCE: die Distanzfunktion, die für diesen Index verwendet werden soll
    • NUM_LEAVES_VALUE: die Anzahl der Partitionen, die auf den Index angewendet werden sollen
    1. Prüfen Sie, ob der Index erstellt wurde.
    \d TABLE_NAME
    1. Empfehlung: Sichern Sie Ihre Indexdaten. Wir empfehlen, zur Sicherheit eine Sicherung Ihrer Datenbank und Indexe zu erstellen.