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, sofern Sie dies noch nicht getan haben.
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 versionDie 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 upgradeInformationen zu Ihrer bestehenden Installation sammeln
Führen Sie dazu diesen Befehl aus:
cat /var/alloydb/config/dataplane.confNotieren Sie sich aus der Ausgabe des
cat-Befehls die Werte der folgenden Variablen:DATADIR_PATH, z. B./var/alloydb/mainENABLE_ALLOYDB_AI, z. B.FALSEPGPORT, z. B.5432INSTANCE_TYPE, z. B.PRIMARY/READ_REPLICA
Mit der postgres_ann-Erweiterung erstellte ScaNN-Indizes löschen
Die Erweiterung postgres_ann wurde in alloydb_scann umbenannt. Wenn Sie die postgres_ann-Erweiterung installiert und ScaNN-Indizes damit erstellt haben, müssen Sie alle ScaNN-Indizes löschen und die Erweiterung deinstallieren, bevor Sie ein Upgrade durchführen.
Führen Sie die folgenden Schritte aus, um Auswirkungen auf Ihre Datenbank aufgrund der Umbenennung der postgres_ann-Erweiterung zu beheben:
- AlloyDB Omni ausführen und eine Verbindung dazu herstellen.
Identifizieren Sie alle Tabellen, die den
ScaNN-Index verwenden.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;Ersetzen Sie
DATABASE_NAMEdurch den Namen der Datenbank, in der Sie die Abfrage ausführen möchten.Speichern Sie Indexdefinitionen und Parameter als DDL-Dump mit einem Dienstprogramm wie
pg_dump, um dieScaNN-Indizes später neu zu erstellen.pg_dump -st TABLE_NAME DATABASE_NAMEErsetzen Sie Folgendes:
DATABASE_NAME: Der Name der Datenbank.TABLE_NAME: der Name der Tabelle.
Löschen Sie
ScaNN-Indexe, die mit dempostgres_ann-Index erstellt wurden.DROP INDEX INDEX_NAME;Ersetzen Sie
INDEX_NAMEdurch den Namen der Datenbank, in der Sie die Abfrage ausführen möchten.Prüfen Sie, ob in Ihren Datenbanken
ScaNN-Indizes enthalten sind. Verwenden Sie die folgende SQL-Abfrage, um die Löschung zu überprü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 entfernen Sie die Erweiterung
postgres_ann:- Prüfen Sie, ob die Erweiterung
postgres_annin Ihrer Datenbank installiert ist.
select * from pg_extension;- Entfernen Sie die Erweiterung
postgres_ann.
DROP EXTENSION postgres_ann CASCADE;- Prüfen Sie, ob die Erweiterung
postgres_annnicht mehr in Ihrer Datenbank installiert ist.
select * from pg_extension;- Prüfen Sie, ob die Erweiterung
Direktes Upgrade durchführen
Beenden Sie die vorhandene Datenbank:
sudo alloydb database-server stopStarten Sie das neue Einzelbild-AlloyDB Omni und hängen Sie Ihr vorhandenes Datenverzeichnis ein:
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/alloydbomniErsetzen 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 dempostgres-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.PGPORT: Die IP-Adresse des Ports, auf dem AlloyDB Omni ausgeführt wird. Das ist der Wert, den Sie in Schritt 2 von Informationen zu Ihrer bestehenden Installation erfassen notiert haben.
Die Argumente für
docker runsind dieselben wie in früheren Versionen von AlloyDB Omni, können aber weiter angepasst werden. Weitere Informationen finden Sie unter AlloyDB Omni-Installation anpassen.Wenn der Typ Ihrer Datenbankinstanz
PRIMARYist, führen Sie den folgenden Befehl aus, um die folgenden Nutzer zu erstellen. Das 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};" doneWenn
ENABLE_ALLOYDB_AITRUEist, 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 postgresSo deinstallieren Sie die AlloyDB Omni-CLI:
sudo alloydb database-server uninstallDie Deinstallation der AlloyDB Omni-Befehlszeile hat keine Auswirkungen auf Ihre in AlloyDB Omni gespeicherten Daten.
ScaNN-Indizes mit der alloydb_scann-Erweiterung neu erstellen
Nach dem Upgrade von AlloyDB Omni wird auch die Erweiterung alloydb_scann installiert. Führen Sie die folgenden Schritte aus, um ScaNN-Indizes neu zu erstellen, die Sie vor dem Upgrade im Abschnitt Mit der Erweiterung postgres_ann erstellte ScaNN-Indizes löschen 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 Erweiterung
alloydb_scannerfolgreich 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 vorherigenpg_dump-DDL-Indexdefinitionen wieder her.- Erstellen Sie den
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 Distanzfunktion, 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 Sicherung Ihrer Datenbank und Ihrer Indexe zu erstellen.
- Erstellen Sie den