Actualizar a la versión 15.7.1 de AlloyDB Omni en una VM

Selecciona una versión de la documentación:

En esta página se proporcionan instrucciones para migrar de la versión 15.5.2 y anteriores a la versión más reciente de AlloyDB Omni.

A partir de AlloyDB Omni 15.5.4, puedes controlar AlloyDB Omni con herramientas de gestión de paquetes comunes.

Si ya tienes una instalación de AlloyDB Omni, sigue las instrucciones de esta página para migrar a la nueva instalación de una sola imagen.

Requisitos previos

Antes de empezar a actualizar a la versión más reciente de AlloyDB Omni, completa los siguientes requisitos previos (si aún no lo has hecho).

Actualizar a AlloyDB Omni 15.5.2

La versión más reciente de AlloyDB Omni que admite la CLI de AlloyDB Omni es la 15.5.2. Para comprobar la versión de AlloyDB Omni, ejecuta el siguiente comando:

sudo alloydb version

El resultado es similar al siguiente:

AlloyDB Omni CLI version: 1.6
AlloyDB Omni database server version: 15.5.2

Si el resultado muestra una versión de la base de datos anterior a la 15.5.2, ejecuta el siguiente comando para actualizarla:

sudo alloydb database-server upgrade

Recopilar información sobre tu instalación

  1. Ejecuta el siguiente comando:

    cat /var/alloydb/config/dataplane.conf
  2. En la salida del comando cat, anota los valores de las siguientes variables para consultarlos:

    • DATADIR_PATH, por ejemplo, /var/alloydb/main
    • ENABLE_ALLOYDB_AI, por ejemplo, FALSE
    • PGPORT, por ejemplo, 5432
    • INSTANCE_TYPE, por ejemplo, PRIMARY/READ_REPLICA

Eliminar índices de ScaNN creados con la extensión postgres_ann

Se ha cambiado el nombre de la extensión postgres_ann a alloydb_scann. Si has instalado la extensión postgres_ann y has creado índices ScaNN con ella, debes eliminar todos los índices ScaNN y desinstalar la extensión antes de realizar una actualización.

Para gestionar cualquier impacto en tu base de datos debido al cambio de nombre de la extensión postgres_ann, sigue estos pasos:

  1. Ejecuta y conéctate a AlloyDB Omni.
  2. Identifica todas las tablas que usan el índice ScaNN.

     \c DATABASE_NAME
     select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;

    Sustituye DATABASE_NAME por el nombre de la base de datos en la que quieras ejecutar la consulta.

  3. Guarda las definiciones y los parámetros de los índices como un archivo DDL de volcado mediante una utilidad como pg_dump para volver a crear los índices de ScaNN más adelante.

    pg_dump -st TABLE_NAME DATABASE_NAME

    Haz los cambios siguientes:

    • DATABASE_NAME: el nombre de la base de datos.
    • TABLE_NAME: el nombre de la tabla.
  4. Elimina los índices ScaNN que se hayan creado con el índice postgres_ann.

    DROP INDEX INDEX_NAME;

    Sustituye INDEX_NAME por el nombre de la base de datos en la que quieras ejecutar la consulta.

  5. Compruebe que ninguna de sus bases de datos incluye índices ScaNN. Usa la siguiente consulta SQL para verificar la eliminación: la siguiente consulta SQL debería devolver un conjunto de resultados vacío.

     \c DATABASE_NAME
     select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
  6. Elimina la extensión postgres_ann siguiendo estos pasos:

    1. Comprueba que la extensión postgres_ann esté instalada en tu base de datos.
    select * from pg_extension;
    1. Elimina la extensión postgres_ann.
    DROP EXTENSION postgres_ann CASCADE;
    1. Comprueba que la extensión postgres_ann ya no esté instalada en tu base de datos.
    select * from pg_extension;

Realizar una actualización en contexto

  1. Detén la base de datos:

    sudo alloydb database-server stop
  2. Inicia la nueva imagen única de AlloyDB Omni y monta el directorio de datos que tenías antes:

    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

    Haz los cambios siguientes:

    • CONTAINER_NAME: el nombre que se asignará a este nuevo contenedor de AlloyDB Omni en el registro de contenedores de tu máquina host. Por ejemplo, my-omni.

    • PASSWORD: la contraseña asignada al usuario postgres del nuevo contenedor después de su creación.

    • PGPORT: la dirección IP del puerto en el que se ejecuta AlloyDB Omni. Este es el valor que anotó en el paso 2 de Recoger información sobre la instalación actual.

    Los argumentos de docker run son los mismos que en versiones anteriores de AlloyDB Omni, pero puedes personalizarlos aún más. Para obtener más información, consulta Personalizar la instalación de AlloyDB Omni.

  3. Si el tipo de instancia de base de datos es PRIMARY, ejecuta el siguiente comando para crear los usuarios que se indican a continuación. Se trata de nombres de usuario que no se están usando en este momento, pero que se han reservado para futuras extensiones.

    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 es TRUE, sigue las instrucciones de Instalar AlloyDB Omni con AlloyDB AI para configurar AlloyDB AI.

  5. Conéctate a la base de datos para verificar que los datos no han cambiado:

    docker exec -it CONTAINER_NAME psql -h localhost -U postgres
  6. Desinstala la CLI de AlloyDB Omni:

    sudo alloydb database-server uninstall

    La desinstalación de la CLI de AlloyDB Omni no afecta a los datos almacenados en AlloyDB Omni.

Recrear índices de ScaNN con la extensión alloydb_scann

Después de actualizar AlloyDB Omni, también se instala la extensión alloydb_scann. Sigue estos pasos para volver a crear los índices de ScaNN que hayas eliminado en la sección Eliminar índices de ScaNN creados con la extensión postgres_ann antes de la actualización.

  1. Crea la extensión alloydb_scann siguiendo estos pasos:

    1. Para crear la extensión alloydb_scann, ejecuta la siguiente consulta:
    create extension alloydb_scann cascade;
    1. Comprueba que la extensión alloydb_scann se haya creado correctamente.
    select * from pg_extension;
  2. Vuelve a crear el índice ScaNN de tu tabla y, a continuación, restaura las definiciones de índice de DDL pg_dump anteriores.

    1. Crea un índice ScaNN en la tabla:
    CREATE INDEX INDEX_NAME ON TABLE_NAME
        USING scann (VECTOR_COLUMN DISTANCE)
        WITH (num_leaves = NUM_LEAVES_VALUE);

    Haz los cambios siguientes:

    • INDEX_NAME: el nombre del índice.
    • TABLE_NAME: el nombre de la tabla.
    • VECTOR_COLUMN: el nombre de la columna que almacena los datos vectoriales.
    • DISTANCE: la función de distancia que se va a usar con este índice.
    • NUM_LEAVES_VALUE: el número de particiones que se aplicarán al índice.
    1. Verifica que se haya creado el índice.
    \d TABLE_NAME
    1. Recomendación: crea una copia de seguridad de los datos de tus índices. Te recomendamos que crees una copia de seguridad de tu base de datos e índices como práctica recomendada.