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 versionO 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 upgradeRecolha informações sobre a instalação existente
Execute o seguinte comando:
cat /var/alloydb/config/dataplane.confA 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/mainENABLE_ALLOYDB_AI—por exemplo,FALSEPGPORT—por exemplo,5432INSTANCE_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 alloydb_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_NAMEpelo 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_dumppara recriar os índicesScaNNmais tarde.pg_dump -st TABLE_NAME DATABASE_NAMESubstitua o seguinte:
DATABASE_NAME: o nome da base de dados.TABLE_NAME: o nome da tabela.
Elimine os índices
ScaNNque foram criados com o índicepostgres_ann.DROP INDEX INDEX_NAME;Substitua
INDEX_NAMEpelo 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_annatravés dos seguintes passos:- Confirme se a extensão
postgres_annestá 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_annjá 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 stopInicie 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/alloydbomniSubstitua 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 utilizadorpostgresdo 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 runsã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};" doneSe
ENABLE_ALLOYDB_AIestiver 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 postgresDesinstale a CLI AlloyDB Omni:
sudo alloydb database-server uninstallA 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_scannatravé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_scannfoi criada com êxito.
select * from pg_extension;- Para criar a extensão
Recrie o índice
ScaNNpara a sua tabela e, em seguida, restaure as definições do índice DDLpg_dumpanteriores.- Crie um índice
ScaNNna 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