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
Execute o seguinte comando:
cat /var/alloydb/config/dataplane.conf
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:
- Execute e estabeleça ligação ao AlloyDB Omni.
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.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 índicesScaNN
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.
Elimine os índices
ScaNN
que foram criados com o índicepostgres_ann
.DROP INDEX INDEX_NAME;
Substitua
INDEX_NAME
pelo nome da base de dados onde quer executar a consulta.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;
Remova a extensão
postgres_ann
através dos seguintes passos:- Confirme se a extensão
postgres_ann
está instalada na sua base de dados.
select * from pg_extension;
- Remova a extensão
postgres_ann
.
DROP EXTENSION postgres_ann CASCADE;
- Confirme se a extensão
postgres_ann
já não está instalada na sua base de dados.
select * from pg_extension;
- Confirme se a extensão
Faça uma atualização no local
Parar a base de dados existente:
sudo alloydb database-server stop
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 utilizadorpostgres
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.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
Se
ENABLE_ALLOYDB_AI
estiver definido comoTRUE
, siga as instruções em Instale o AlloyDB Omni com o AlloyDB AI para configurar o AlloyDB AI.Associe à base de dados para verificar se os dados permanecem inalterados:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres
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.
Crie a extensão
alloydb_scann
através dos seguintes passos:- Para criar a extensão
alloydb_scann
, execute a seguinte consulta:
create extension alloydb_scann cascade;
- Verifique se a extensão
alloydb_scann
foi criada com êxito.
select * from pg_extension;
- Para criar a extensão
Recrie o índice
ScaNN
para a sua tabela e, em seguida, restaure as definições do índice DDLpg_dump
anteriores.- 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.
- Verifique se o índice foi criado.
\d TABLE_NAME
- 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.
- Crie um índice