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

Selecione uma versão da documentação:

Nesta página, fornecemos 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ê já 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 a 15.5.2, execute o seguinte comando para fazer upgrade:

sudo alloydb database-server upgrade

Reúna informações sobre sua instalação atual

  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 sua 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, remova todos os índices ScaNN e desinstale a extensão antes de fazer um upgrade.

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

  1. Executar e se conectar 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 de índice como uma 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. Remova a extensão postgres_ann seguindo estas etapas:

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

Fazer um upgrade no local

  1. Pare o banco de dados atual:

    sudo alloydb database-server stop
  2. Inicie o novo AlloyDB Omni de imagem única, montando o diretório de dados atual de 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

    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 usuário postgres do novo contêiner após a criação dele.

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

    Os argumentos de 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 comando a seguir para criar os usuários. São nomes de usuário que não estão sendo usados 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 a IA do AlloyDB para configurar a IA do AlloyDB.

  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 do ScaNN usando a extensão alloydb_scann

Depois de fazer upgrade do AlloyDB Omni, a extensão alloydb_scann também será instalada. Conclua as etapas a seguir para recriar os índices do ScaNN que você excluiu na seção Excluir índices do 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 com sucesso.
    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 de vetor.
    • 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 índice. Recomendamos criar um backup do banco de dados e dos índices como prática recomendada.