Migre da versão 15.5.2 e anteriores do AlloyDB Omni para a versão mais recente

Selecione uma versão da documentação:

Esta página contém 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, controla o AlloyDB Omni com ferramentas comuns de gestão de pacotes.

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

Pré-requisitos

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

Atualize para o AlloyDB Omni 15.5.2

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

sudo alloydb version

O resultado tem um aspeto semelhante ao seguinte:

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

Se a saída apresentar uma versão da base de dados anterior a 15.5.2, execute o seguinte comando para atualizar:

sudo alloydb database-server upgrade

Recolha informações sobre a instalação existente

  1. Execute o seguinte comando:

    cat /var/alloydb/config/dataplane.conf
  2. A partir da saída do comando cat, tome nota dos 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

Elimine os índices ScaNN criados com a extensão postgres_ann

A extensão postgres_ann passa a chamar-se alloyd_scann. Se instalou a extensão postgres_ann e criou índices ScaNN com a extensão, tem de eliminar todos os índices ScaNN e desinstalar a extensão antes de fazer uma atualização.

Para lidar com qualquer impacto na sua base de dados devido à mudança do nome da extensão postgres_ann, conclua os seguintes passos:

  1. Execute e estabeleça ligação 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 da base de dados onde quer executar a consulta.

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

    pg_dump -st TABLE_NAME DATABASE_NAME

    Substitua o seguinte:

    • DATABASE_NAME: o nome da base de dados.
    • TABLE_NAME: o nome da tabela.
  4. Elimine os índices ScaNN que foram criados com o índice postgres_ann.

    DROP INDEX INDEX_NAME;

    Substitua INDEX_NAME pelo nome da base de dados onde quer executar a consulta.

  5. Verifique se nenhuma das suas bases de dados inclui índices ScaNN. Use a seguinte consulta SQL para validar a eliminação: o seguinte SQL deve devolver 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 através dos seguintes passos:

    1. Confirme se a extensão postgres_ann está instalada na sua base de dados.
    select * from pg_extension;
    1. Remova a extensão postgres_ann.
    DROP EXTENSION postgres_ann CASCADE;
    1. Confirme se a extensão postgres_ann já não está instalada na sua base de dados.
    select * from pg_extension;

Faça uma atualização no local

  1. Parar a base de dados existente:

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

    Substitua o seguinte:

    • CONTAINER_NAME: o nome a atribuir a este novo contentor do AlloyDB Omni no registo de contentores da sua máquina anfitriã, por exemplo, my-omni.

    • PASSWORD: a palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.

    • PGPORT: o endereço IP da porta em que o AlloyDB Omni é executado. Este é o valor que anotou no passo 2 de Recolha informações sobre a sua instalação existente.

    Os argumentos para docker run são os usados em versões anteriores do AlloyDB Omni, mas pode personalizá-los ainda mais. Consulte o artigo Personalize a instalação do AlloyDB Omni para ver detalhes.

  3. Se o tipo de instância da base de dados for PRIMARY, execute o seguinte comando para criar os seguintes utilizadores. Estes são nomes de utilizador que não estão a ser usados de 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 estiver definido como TRUE, siga as instruções em Instale o AlloyDB Omni com o AlloyDB AI para configurar o AlloyDB AI.

  5. Associe à base de dados para verificar se os dados permanecem inalterados:

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

    sudo alloydb database-server uninstall

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

Recrie os índices do ScaNN com a extensão alloydb_scann

Depois de atualizar o AlloyDB Omni, a extensão alloydb_scann também é instalada. Conclua os passos seguintes para recriar os índices ScaNN que eliminou na secção Elimine os índices ScaNN criados com a extensão postgres_ann antes da atualização.

  1. Crie a extensão alloydb_scann através dos seguintes passos:

    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 êxito.
    select * from pg_extension;
  2. Recrie o índice ScaNN para a sua tabela e, em seguida, restaure as definições do índice DDL pg_dump anteriores.

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

    Substitua o seguinte:

    • 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 usar com este índice.
    • NUM_LEAVES_VALUE: o número de partições a aplicar ao índice.
    1. Verifique se o índice foi criado.
    \d TABLE_NAME
    1. Recomendado: faça uma cópia de segurança dos dados dos seus índices. Recomendamos que crie uma cópia de segurança da sua base de dados e índices como prática recomendada.