À partir d'AlloyDB Omni 15.5.4, vous contrôlez AlloyDB Omni avec des outils de gestion de packages courants.
Si vous avez déjà installé AlloyDB Omni, suivez les instructions de cette page pour migrer vers la nouvelle installation à image unique.
Prérequis
Avant de pouvoir passer à la dernière version d'AlloyDB Omni, remplissez les conditions préalables suivantes, si vous ne l'avez pas déjà fait.
Mettre à niveau vers AlloyDB Omni 15.5.2
La dernière version d'AlloyDB Omni compatible avec l'interface de ligne de commande AlloyDB Omni est la version 15.5.2. Pour vérifier la version d'AlloyDB Omni, exécutez la commande suivante :
sudo alloydb version
La sortie ressemble à ceci :
AlloyDB Omni CLI version: 1.6
AlloyDB Omni database server version: 15.5.2
Si le résultat affiche une version de base de données antérieure à 15.5.2, exécutez la commande suivante pour effectuer la mise à niveau :
sudo alloydb database-server upgrade
Rassemblez des informations sur votre installation existante.
Exécutez la commande suivante :
cat /var/alloydb/config/dataplane.conf
Dans le résultat de la commande
cat
, notez les valeurs des variables suivantes pour référence :DATADIR_PATH
, par exemple/var/alloydb/main
ENABLE_ALLOYDB_AI
, par exempleFALSE
PGPORT
, par exemple5432
INSTANCE_TYPE
, par exemplePRIMARY/READ_REPLICA
Supprimer les index ScaNN créés avec l'extension postgres_ann
L'extension postgres_ann
a été renommée alloydb_scann
. Si vous avez installé l'extension postgres_ann
et créé des index ScaNN
à l'aide de l'extension, vous devez supprimer tous les index ScaNN
et désinstaller l'extension avant d'effectuer une mise à niveau.
Pour gérer tout impact sur votre base de données en raison du changement de nom de l'extension postgres_ann
, procédez comme suit :
- Exécutez AlloyDB Omni et connectez-vous-y.
Identifiez toutes les tables qui utilisent l'index
ScaNN
.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
Remplacez
DATABASE_NAME
par le nom de la base de données sur laquelle vous souhaitez exécuter la requête.Enregistrez les définitions et les paramètres d'index en tant que LDD de vidage à l'aide d'un utilitaire tel que
pg_dump
pour recréer les indexScaNN
ultérieurement.pg_dump -st TABLE_NAME DATABASE_NAME
Remplacez les éléments suivants :
DATABASE_NAME
: nom de la base de données.TABLE_NAME
: nom de la table
Supprimez les index
ScaNN
créés à l'aide de l'indexpostgres_ann
.DROP INDEX INDEX_NAME;
Remplacez
INDEX_NAME
par le nom de la base de données sur laquelle vous souhaitez exécuter la requête.Vérifiez qu'aucune de vos bases de données n'inclut d'index
ScaNN
. Utilisez la requête SQL suivante pour vérifier la suppression : la requête SQL suivante doit renvoyer un ensemble de résultats vide.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
Supprimez l'extension
postgres_ann
en procédant comme suit :- Vérifiez que l'extension
postgres_ann
est installée dans votre base de données.
select * from pg_extension;
- Supprimez l'extension
postgres_ann
.
DROP EXTENSION postgres_ann CASCADE;
- Vérifiez que l'extension
postgres_ann
n'est plus installée dans votre base de données.
select * from pg_extension;
- Vérifiez que l'extension
Effectuer une mise à niveau sur place
Arrêtez la base de données existante :
sudo alloydb database-server stop
Démarrez la nouvelle image unique AlloyDB Omni en montant votre répertoire de données existant :
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
Remplacez les éléments suivants :
CONTAINER_NAME
: nom à attribuer à ce nouveau conteneur AlloyDB Omni dans le registre de conteneurs de votre machine hôte (par exemple,my-omni
).PASSWORD
: mot de passe attribué à l'utilisateurpostgres
du nouveau conteneur après sa création.PGPORT
: adresse IP du port sur lequel AlloyDB Omni s'exécute. Il s'agit de la valeur que vous avez notée à l'étape 2 de la section Recueillir des informations sur votre installation existante.
Les arguments de
docker run
sont les mêmes que dans les versions antérieures d'AlloyDB Omni, mais vous pouvez les personnaliser davantage. Pour en savoir plus, consultez Personnaliser votre installation AlloyDB Omni.Si le type d'instance de votre base de données est
PRIMARY
, exécutez la commande suivante pour créer les utilisateurs suivants. Il s'agit de noms d'utilisateur qui ne sont pas utilisés pour le moment, mais qui sont réservés pour de futures extensions.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
Si
ENABLE_ALLOYDB_AI
est défini surTRUE
, suivez les instructions de la section Installer AlloyDB Omni avec AlloyDB AI pour configurer AlloyDB AI.Connectez-vous à la base de données pour vérifier que les données n'ont pas changé :
docker exec -it CONTAINER_NAME psql -h localhost -U postgres
Désinstallez la CLI AlloyDB Omni :
sudo alloydb database-server uninstall
La désinstallation de l'interface de ligne de commande AlloyDB Omni n'affecte pas les données stockées dans AlloyDB Omni.
Recréer des index ScaNN à l'aide de l'extension alloydb_scann
Une fois que vous avez mis à niveau AlloyDB Omni, l'extension alloydb_scann
est également installée. Procédez comme suit pour recréer les index ScaNN que vous avez supprimés dans la section Supprimer les index ScaNN créés avec l'extension postgres_ann
avant la mise à niveau.
Créez l'extension
alloydb_scann
en procédant comme suit :- Pour créer l'extension
alloydb_scann
, exécutez la requête suivante :
create extension alloydb_scann cascade;
- Vérifiez que l'extension
alloydb_scann
a bien été créée.
select * from pg_extension;
- Pour créer l'extension
Recréez l'index
ScaNN
pour votre table, puis restaurez les définitions d'index LDDpg_dump
précédentes.- Créez l'index
ScaNN
sur la table :
CREATE INDEX INDEX_NAME ON TABLE_NAME USING scann (VECTOR_COLUMN DISTANCE) WITH (num_leaves = NUM_LEAVES_VALUE);
Remplacez les éléments suivants :
- INDEX_NAME : nom de l'index.
- TABLE_NAME : nom de la table
- VECTOR_COLUMN : nom de la colonne qui stocke les données vectorielles.
- DISTANCE : fonction de distance à utiliser avec cet index.
- NUM_LEAVES_VALUE : nombre de partitions à appliquer à l'index.
- Vérifiez que l'index a bien été créé.
\d TABLE_NAME
- Recommandation : Sauvegardez les données de vos index. Nous vous recommandons de créer une sauvegarde de votre base de données et de vos index.
- Créez l'index