A partire da AlloyDB Omni 15.5.4, puoi controllare AlloyDB Omni con strumenti di gestione dei pacchetti comuni.
Se hai un'installazione esistente di AlloyDB Omni, segui le istruzioni riportate in questa pagina per eseguire la migrazione alla nuova installazione a immagine singola.
Prerequisiti
Prima di poter iniziare l'upgrade alla versione più recente di AlloyDB Omni, completa i seguenti prerequisiti, se non l'hai già fatto.
Esegui l'upgrade ad AlloyDB Omni 15.5.2
L'ultima versione di AlloyDB Omni che supporta l'interfaccia a riga di comando AlloyDB Omni è la 15.5.2. Per controllare la versione di AlloyDB Omni, esegui il seguente comando:
sudo alloydb versionL'output è simile al seguente:
AlloyDB Omni CLI version: 1.6
AlloyDB Omni database server version: 15.5.2
Se l'output mostra una versione del database precedente alla 15.5.2, esegui il seguente comando per eseguire l'upgrade:
sudo alloydb database-server upgradeRaccogli informazioni sull'installazione esistente
Esegui questo comando:
cat /var/alloydb/config/dataplane.confDall'output del comando
cat, prendi nota dei valori delle seguenti variabili per riferimento:DATADIR_PATH, ad esempio/var/alloydb/mainENABLE_ALLOYDB_AI, ad esempioFALSEPGPORT, ad esempio5432INSTANCE_TYPE, ad esempioPRIMARY/READ_REPLICA
Elimina gli indici ScaNN creati con l'estensione postgres_ann
L'estensione postgres_ann è stata rinominata in alloydb_scann. Se hai installato l'estensione postgres_ann e hai creato indici ScaNN utilizzando l'estensione, devi eliminare tutti gli indici ScaNN e disinstallare l'estensione prima di eseguire un upgrade.
Per gestire l'impatto sul database dovuto alla ridenominazione dell'estensione postgres_ann, completa i seguenti passaggi:
- Esegui e connettiti ad AlloyDB Omni.
Identifica tutte le tabelle che utilizzano l'indice
ScaNN.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;Sostituisci
DATABASE_NAMEcon il nome del database in cui vuoi eseguire la query.Salva le definizioni e i parametri dell'indice come DDL di dump utilizzando un'utilità come
pg_dumpper ricreare gli indiciScaNNin un secondo momento.pg_dump -st TABLE_NAME DATABASE_NAMESostituisci quanto segue:
DATABASE_NAME: il nome del database.TABLE_NAME: il nome della tabella.
Elimina gli indici
ScaNNcreati utilizzando l'indicepostgres_ann.DROP INDEX INDEX_NAME;Sostituisci
INDEX_NAMEcon il nome del database in cui vuoi eseguire la query.Verifica che nessuno dei tuoi database includa indici
ScaNN. Utilizza la seguente query SQL per verificare l'eliminazione: la seguente query SQL deve restituire un set di risultati vuoto.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;Elimina l'estensione
postgres_annseguendo questi passaggi:- Verifica che l'estensione
postgres_annsia installata nel database.
select * from pg_extension;- Elimina l'estensione
postgres_ann.
DROP EXTENSION postgres_ann CASCADE;- Verifica che l'estensione
postgres_annnon sia più installata nel database.
select * from pg_extension;- Verifica che l'estensione
Esegui un upgrade in loco
Arresta il database esistente:
sudo alloydb database-server stopAvvia la nuova immagine singola di AlloyDB Omni, montando la directory dei dati esistente da prima:
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/alloydbomniSostituisci quanto segue:
CONTAINER_NAME: il nome da assegnare a questo nuovo container AlloyDB Omni nel registro dei container della macchina host, ad esempiomy-omni.PASSWORD: la password assegnata all'utentepostgresdel nuovo container dopo la sua creazione.PGPORT: l'indirizzo IP della porta su cui è in esecuzione AlloyDB Omni. Questo è il valore che hai annotato nel passaggio 2 di Raccogli informazioni sull'installazione esistente.
Gli argomenti di
docker runsono gli stessi delle versioni precedenti di AlloyDB Omni, ma puoi personalizzarli ulteriormente. Per maggiori dettagli, consulta Personalizzare l'installazione di AlloyDB Omni.Se il tipo di istanza del database è
PRIMARY, esegui il seguente comando per creare i seguenti utenti. Questi sono nomi utente attualmente inutilizzati, ma riservati per le estensioni future.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};" doneSe
ENABLE_ALLOYDB_AIèTRUE, segui le istruzioni riportate in Installare AlloyDB Omni con AlloyDB AI per configurare AlloyDB AI.Connettiti al database per verificare che i dati siano invariati:
docker exec -it CONTAINER_NAME psql -h localhost -U postgresDisinstalla l'interfaccia a riga di comando AlloyDB Omni:
sudo alloydb database-server uninstallLa disinstallazione dell'interfaccia a riga di comando AlloyDB Omni non influisce sui dati archiviati in AlloyDB Omni.
Ricrea gli indici ScaNN utilizzando l'estensione alloydb_scann
Dopo l'upgrade di AlloyDB Omni, viene installata anche l'estensione alloydb_scann. Completa i seguenti passaggi per ricreare gli indici ScaNN che hai eliminato nella sezione Eliminare gli indici ScaNN creati con l'estensione postgres_ann prima dell'upgrade.
Crea l'estensione
alloydb_scannseguendo questi passaggi:- Per creare l'estensione
alloydb_scann, esegui la seguente query:
create extension alloydb_scann cascade;- Verifica che l'estensione
alloydb_scannsia stata creata correttamente.
select * from pg_extension;- Per creare l'estensione
Ricrea l'indice
ScaNNper la tabella, quindi ripristina le definizioni dell'indice DDLpg_dumpprecedenti.- Crea l'indice
ScaNNnella tabella:
CREATE INDEX INDEX_NAME ON TABLE_NAME USING scann (VECTOR_COLUMN DISTANCE) WITH (num_leaves = NUM_LEAVES_VALUE);Sostituisci quanto segue:
- INDEX_NAME: il nome dell'indice.
- TABLE_NAME: il nome della tabella.
- VECTOR_COLUMN: il nome della colonna che memorizza i dati vettoriali.
- DISTANCE: la funzione di distanza da utilizzare con questo indice.
- NUM_LEAVES_VALUE: il numero di partizioni da applicare all'indice.
- Verifica che l'indice sia stato creato.
\d TABLE_NAME- (Consigliato) Esegui il backup dei dati degli indici. Ti consigliamo di creare un backup del database e degli indici come best practice.
- Crea l'indice