Migrer d'AlloyDB Omni version 15.5.2 ou antérieure vers la dernière version

Cette page explique comment passer de la version 15.5.2 ou antérieure à la dernière version d'AlloyDB Omni.

À partir d'AlloyDB Omni 15.5.4, vous pouvez contrôler AlloyDB Omni à l'aide d'outils de gestion de paquets 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 commencer à passer à la dernière version d'AlloyDB Omni, vérifiez que vous remplissez les conditions préalables suivantes, si ce n'est pas déjà fait.

Mettre à niveau vers AlloyDB Omni 15.5.2

La dernière version d'AlloyDB Omni compatible avec la CLI 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 la version de la base de données affichée est antérieure à 15.5.2, exécutez la commande suivante pour la mettre à niveau:

sudo alloydb database-server upgrade

Rassembler des informations sur votre installation existante

  1. Exécutez la commande suivante :

    cat /var/alloydb/config/dataplane.conf
  2. À partir de la sortie 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 exemple, FALSE)
    • PGPORT (par exemple, 5432)
    • INSTANCE_TYPE (par exemple, PRIMARY/READ_REPLICA)

Supprimer les index ScaNN créés avec l'extension postgres_ann

L'extension postgres_ann est renommée alloydb_scann. Si vous avez installé l'extension postgres_ann et créé des index ScaNN à l'aide de celle-ci, 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 renommage de l'extension postgres_ann, procédez comme suit:

  1. Exécutez et connectez-vous à AlloyDB Omni.
  2. 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.

  3. 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 index ScaNN 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
  4. Supprimez les index ScaNN créés à l'aide de l'index postgres_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.

  5. 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;
  6. Pour supprimer l'extension postgres_ann, procédez comme suit:

    1. Vérifiez que l'extension postgres_ann est installée dans votre base de données.
    select * from pg_extension;
    1. Supprimez l'extension postgres_ann.
    DROP EXTENSION postgres_ann CASCADE;
    1. Vérifiez que l'extension postgres_ann n'est plus installée dans votre base de données.
    select * from pg_extension;

Effectuer une mise à niveau sur place

  1. Arrêtez la base de données existante:

    sudo alloydb database-server stop
  2. Démarrez la nouvelle image AlloyDB Omni, en montant votre ancien répertoire de données:

    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'utilisateur postgres 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 ceux utilisés dans les versions antérieures d'AlloyDB Omni, mais vous pouvez les personnaliser davantage. Pour en savoir plus, consultez Personnaliser votre installation d'AlloyDB Omni.

  3. 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'utilisateurs inutilisés pour le moment, mais réservés à 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
  4. Si ENABLE_ALLOYDB_AI est défini sur TRUE, suivez les instructions de la section Installer AlloyDB Omni avec AlloyDB AI pour configurer AlloyDB AI.

  5. 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
  6. Désinstallez la CLI AlloyDB Omni:

    sudo alloydb database-server uninstall

    La désinstallation de la CLI AlloyDB Omni n'affecte pas vos données stockées dans AlloyDB Omni.

Recréer des index ScaNN à l'aide de l'extension alloydb_scann

Une fois AlloyDB Omni mis à niveau, l'extension alloydb_scann est également installée. Suivez les étapes ci-dessous 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.

  1. Créez l'extension alloydb_scann en procédant comme suit:

    1. Pour créer l'extension alloydb_scann, exécutez la requête suivante:
    create extension alloydb_scann cascade;
    1. Vérifiez que l'extension alloydb_scann a bien été créée.
    select * from pg_extension;
  2. Recréez l'index ScaNN pour votre table, puis restaurez les définitions d'index LDD pg_dump précédentes.

    1. Créez un indice 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.
    1. Vérifiez que l'index est créé.
    \d TABLE_NAME
    1. 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.