Auf dieser Seite finden Sie eine Anleitung zum Migrieren von Version 15.5.2 und niedriger zur neuesten Version von AlloyDB Omni.
Ab AlloyDB Omni 15.5.4 wird AlloyDB Omni mit gängigen Tools zur Paketverwaltung gesteuert.
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 Sie dies noch nicht getan haben.
Upgrade auf AlloyDB Omni 15.5.2
Die neueste AlloyDB Omni-Version, die die AlloyDB Omni-Befehlszeile 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 angezeigt wird, die älter als 15.5.2 ist, führen Sie den folgenden Befehl aus, um ein Upgrade durchzuführen:
sudo alloydb database-server upgrade
Informationen zur vorhandenen Installation einholen
Führen Sie dazu diesen Befehl aus:
cat /var/alloydb/config/dataplane.conf
Notieren Sie sich aus 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
ScaNN-Indexe löschen, die mit der Erweiterung postgres_ann
erstellt wurden
Die Erweiterung postgres_ann
wird in alloyd_scann
umbenannt. Wenn Sie die postgres_ann
-Erweiterung installiert und damit ScaNN
-Indexe erstellt haben, müssen Sie alle ScaNN
-Indexe löschen und die Erweiterung deinstallieren, bevor Sie ein Upgrade durchführen.
So beheben Sie mögliche Auswirkungen auf Ihre Datenbank durch die Umbenennung der postgres_ann
-Erweiterung:
- AlloyDB Omni ausführen und eine Verbindung dazu herstellen.
Identifizieren Sie alle Tabellen, für die der Index
ScaNN
verwendet wird.\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.Speichern Sie Indexdefinitionen und ‑parameter mit einem Dienstprogramm wie
pg_dump
als Dump-DDL, um dieScaNN
-Indexe später neu zu erstellen.pg_dump -st TABLE_NAME DATABASE_NAME
Ersetzen Sie Folgendes:
DATABASE_NAME
: der Name der DatenbankTABLE_NAME
: der Name der Tabelle.
Löschen Sie
ScaNN
-Indexe, die mit dempostgres_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.Prüfen Sie, ob keine Ihrer Datenbanken
ScaNN
-Indexe enthält. Mit der folgenden SQL-Abfrage können Sie die Löschung prüfen: Die folgende SQL-Abfrage sollte eine leere Ergebnismenge zurückgeben.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
So legen Sie die Erweiterung
postgres_ann
ab:- Prüfen Sie, ob die
postgres_ann
-Erweiterung in Ihrer Datenbank installiert ist.
select * from pg_extension;
- Ziehen Sie die Erweiterung „
postgres_ann
“ per Drag-and-drop auf das Feld.
DROP EXTENSION postgres_ann CASCADE;
- Prüfen Sie, ob die
postgres_ann
-Erweiterung nicht mehr in Ihrer Datenbank installiert ist.
select * from pg_extension;
- Prüfen Sie, ob die
Direktes Upgrade ausführen
Beenden Sie die vorhandene Datenbank:
sudo alloydb database-server stop
Starten Sie die neue AlloyDB Omni-Instanz mit einem einzelnen Image und stellen Sie das vorhandene Datenverzeichnis bereit:
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:15.5.5
Ersetzen Sie Folgendes:
CONTAINER_NAME
: Der Name, der diesem neuen AlloyDB Omni-Container in der Containerregistrierung Ihres Hosts zugewiesen werden soll, z. B.my-omni
.PASSWORD
: Das Passwort, das dempostgres
-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 unter Informationen zur vorhandenen Installation erfassen notiert haben.
Die Argumente für
docker run
entsprechen denen in früheren Versionen von AlloyDB Omni. Sie können sie jedoch weiter anpassen. Weitere Informationen finden Sie unter AlloyDB Omni-Installation anpassen.Wenn der Typ Ihrer Datenbankinstanz
PRIMARY
ist, führen Sie den folgenden Befehl aus, um die folgenden Nutzer zu erstellen. Dies sind derzeit nicht verwendete Nutzernamen, die 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
Wenn
ENABLE_ALLOYDB_AI
aufTRUE
festgelegt ist, folgen Sie der Anleitung unter AlloyDB Omni mit AlloyDB AI installieren, um AlloyDB AI einzurichten.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
So deinstallieren Sie die AlloyDB Omni-Befehlszeile:
sudo alloydb database-server uninstall
Die Deinstallation der AlloyDB Omni-Befehlszeilenschnittstelle hat keine Auswirkungen auf die in AlloyDB Omni gespeicherten Daten.
ScaNN-Indexe mit der Erweiterung alloydb_scann
neu erstellen
Nach dem Upgrade von AlloyDB Omni wird auch die alloydb_scann
-Erweiterung installiert. Führen Sie die folgenden Schritte aus, um ScaNN-Indexe neu zu erstellen, die Sie vor dem Upgrade im Abschnitt ScaNN-Indexe löschen, die mit der Erweiterung postgres_ann
erstellt wurden gelöscht haben.
So erstellen Sie die
alloydb_scann
-Erweiterung:- Führen Sie die folgende Abfrage aus, um die
alloydb_scann
-Erweiterung zu erstellen:
create extension alloydb_scann cascade;
- Prüfen Sie, ob die
alloydb_scann
-Erweiterung erfolgreich erstellt wurde.
select * from pg_extension;
- Führen Sie die folgende Abfrage aus, um die
Erstellen Sie den
ScaNN
-Index für Ihre Tabelle neu und stellen Sie dann die vorherigen DDL-Indexdefinitionen fürScaNN
wieder her.pg_dump
- Erstellen Sie einen
ScaNN
-Index für die Tabelle:
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 werden.
- DISTANCE: die Entfernungsfunktion, die mit diesem Index verwendet werden soll.
- NUM_LEAVES_VALUE: die Anzahl der Partitionen, die auf den Index angewendet werden sollen.
- Prüfen Sie, ob der Index erstellt wurde.
\d TABLE_NAME
- Empfohlen: Sichern Sie Ihre Indexdaten. Wir empfehlen, eine Sicherungskopie Ihrer Datenbank und Indexe zu erstellen.
- Erstellen Sie einen