Fazer upgrade para a versão 15.7.1 do AlloyDB Omni em uma VM

Selecione uma versão da documentação:

Esta página fornece instruções para migrar da versão 15.5.2 e anteriores para a versão mais recente do AlloyDB Omni.

A partir do AlloyDB Omni 15.5.4, você controla o AlloyDB Omni com ferramentas comuns de gerenciamento de pacotes.

Se você tiver uma instalação do AlloyDB Omni, siga as instruções nesta página para migrar para a nova instalação de imagem única.

Pré-requisitos

Antes de começar a fazer upgrade para a versão mais recente do AlloyDB Omni, conclua os pré-requisitos a seguir, se ainda não tiver feito isso.

Fazer upgrade para o AlloyDB Omni 15.5.2

A versão mais recente do AlloyDB Omni que oferece suporte à CLI do AlloyDB Omni é a 15.5.2. Para verificar a versão do AlloyDB Omni, execute o seguinte comando:

sudo alloydb version

A saída será assim:

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

Se a saída mostrar uma versão do banco de dados anterior à 15.5.2, execute o seguinte comando para fazer upgrade:

sudo alloydb database-server upgrade

Coletar informações sobre a instalação

  1. Execute este comando:

    cat /var/alloydb/config/dataplane.conf
  2. Na saída do comando cat, anote os valores das seguintes variáveis para referência:

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

Descartar índices ScaNN criados com a extensão postgres_ann

A extensão postgres_ann foi renomeada como alloydb_scann. Se você instalou a extensão postgres_ann e criou índices ScaNN usando a extensão, descarte todos os índices ScaNN e desinstale a extensão antes de fazer um upgrade.

Para lidar com qualquer impacto no banco de dados devido à renomeação da extensão postgres_ann, siga estas etapas:

  1. Execute e conecte-se ao AlloyDB Omni.
  2. Identifique todas as tabelas que usam o índice ScaNN.

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

    Substitua DATABASE_NAME pelo nome do banco de dados em que você quer executar a consulta.

  3. Salve as definições e os parâmetros do índice como um DDL de despejo usando um utilitário como pg_dump para recriar os índices ScaNN mais tarde.

    pg_dump -st TABLE_NAME DATABASE_NAME

    Substitua:

    • DATABASE_NAME: o nome do banco de dados.
    • TABLE_NAME: o nome da tabela.
  4. Descarte os índices ScaNN que foram criados usando o índice postgres_ann.

    DROP INDEX INDEX_NAME;

    Substitua INDEX_NAME pelo nome do banco de dados em que você quer executar a consulta.

  5. Verifique se nenhum dos seus bancos de dados inclui índices ScaNN. Use a seguinte consulta SQL para verificar a exclusão: o SQL a seguir precisa retornar um conjunto de resultados vazio.

     \c DATABASE_NAME
     select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
  6. Descarte a extensão postgres_ann seguindo estas etapas:

    1. Verifique se a extensão postgres_ann está instalada no banco de dados.
    select * from pg_extension;
    1. Descarte a extensão postgres_ann.
    DROP EXTENSION postgres_ann CASCADE;
    1. Verifique se a extensão postgres_ann não está mais instalada no banco de dados.
    select * from pg_extension;

Realizar um upgrade no local

  1. Interrompa o banco de dados:

    sudo alloydb database-server stop
  2. Inicie o novo AlloyDB Omni de imagem única, montando o diretório de dados anterior:

    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

    Substitua:

    • CONTAINER_NAME: o nome a ser atribuído a esse novo contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo, my-omni.

    • PASSWORD: a senha atribuída ao novo usuário postgres do contêiner após a criação.

    • PGPORT: o endereço IP da porta em que o AlloyDB Omni é executado. Esse é o valor que você anotou na etapa 2 de Coletar informações sobre a instalação.

    Os argumentos para docker run são os mesmos das versões anteriores do AlloyDB Omni, mas você pode personalizá-los ainda mais. Consulte Personalizar a instalação do AlloyDB Omni para mais detalhes.

  3. Se o tipo de instância do banco de dados for PRIMARY, execute o seguinte comando para criar os usuários a seguir. Esses são nomes de usuário que não estão em uso no momento, mas estão reservados para extensões futuras.

    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. Se ENABLE_ALLOYDB_AI for TRUE, siga as instruções em Instalar o AlloyDB Omni com o AlloyDB AI para configurar o AlloyDB AI.

  5. Conecte-se ao banco de dados para verificar se os dados não foram alterados:

    docker exec -it CONTAINER_NAME psql -h localhost -U postgres
  6. Desinstale a CLI do AlloyDB Omni:

    sudo alloydb database-server uninstall

    A desinstalação da CLI do AlloyDB Omni não afeta os dados armazenados no AlloyDB Omni.

Recriar índices ScaNN usando a extensão alloydb_scann

Depois de fazer upgrade do AlloyDB Omni, a extensão alloydb_scann também será instalada. Siga estas etapas para recriar os índices ScaNN que você descartou na seção Descartar índices ScaNN criados com a extensão postgres_ann antes do upgrade.

  1. Crie a extensão alloydb_scann seguindo estas etapas:

    1. Para criar a extensão alloydb_scann, execute a seguinte consulta:
    create extension alloydb_scann cascade;
    1. Verifique se a extensão alloydb_scann foi criada.
    select * from pg_extension;
  2. Recrie o índice ScaNN para sua tabela e restaure as definições de índice DDL pg_dump anteriores.

    1. Crie o índice ScaNN na tabela:
    CREATE INDEX INDEX_NAME ON TABLE_NAME
        USING scann (VECTOR_COLUMN DISTANCE)
        WITH (num_leaves = NUM_LEAVES_VALUE);

    Substitua:

    • INDEX_NAME: o nome do índice.
    • TABLE_NAME: o nome da tabela.
    • VECTOR_COLUMN: o nome da coluna que armazena dados vetoriais.
    • DISTANCE: a função de distância a ser usada com esse índice.
    • NUM_LEAVES_VALUE: o número de partições a serem aplicadas ao índice.
    1. Verifique se o índice foi criado.
    \d TABLE_NAME
    1. Recomendado: faça backup dos dados de índices. Recomendamos criar um backup do banco de dados e dos índices como prática recomendada.