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 versionA 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 upgradeColetar informações sobre a instalação
Execute este comando:
cat /var/alloydb/config/dataplane.confNa saída do comando
cat, anote os valores das seguintes variáveis para referência:DATADIR_PATH: por exemplo,/var/alloydb/mainENABLE_ALLOYDB_AI: por exemplo,FALSEPGPORT: por exemplo,5432INSTANCE_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:
- Execute e conecte-se 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 do banco de dados em que você quer executar a consulta.Salve as definições e os parâmetros do índice como um DDL de despejo usando um utilitário como
pg_dumppara recriar os índicesScaNNmais tarde.pg_dump -st TABLE_NAME DATABASE_NAMESubstitua:
DATABASE_NAME: o nome do banco de dados.TABLE_NAME: o nome da tabela.
Descarte os índices
ScaNNque foram criados usando o índicepostgres_ann.DROP INDEX INDEX_NAME;Substitua
INDEX_NAMEpelo nome do banco de dados em que você quer executar a consulta.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;Descarte a extensão
postgres_annseguindo estas etapas:- Verifique se a extensão
postgres_annestá instalada no banco de dados.
select * from pg_extension;- Descarte a extensão
postgres_ann.
DROP EXTENSION postgres_ann CASCADE;- Verifique se a extensão
postgres_annnão está mais instalada no banco de dados.
select * from pg_extension;- Verifique se a extensão
Realizar um upgrade no local
Interrompa o banco de dados:
sudo alloydb database-server stopInicie 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/alloydbomniSubstitua:
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áriopostgresdo 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 runsã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.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};" doneSe
ENABLE_ALLOYDB_AIforTRUE, siga as instruções em Instalar o AlloyDB Omni com o AlloyDB AI para configurar o AlloyDB AI.Conecte-se ao banco de dados para verificar se os dados não foram alterados:
docker exec -it CONTAINER_NAME psql -h localhost -U postgresDesinstale a CLI do AlloyDB Omni:
sudo alloydb database-server uninstallA 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.
Crie a extensão
alloydb_scannseguindo estas etapas:- Para criar a extensão
alloydb_scann, execute a seguinte consulta:
create extension alloydb_scann cascade;- Verifique se a extensão
alloydb_scannfoi criada.
select * from pg_extension;- Para criar a extensão
Recrie o índice
ScaNNpara sua tabela e restaure as definições de índice DDLpg_dumpanteriores.- Crie o índice
ScaNNna 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.
- Verifique se o índice foi criado.
\d TABLE_NAME- Recomendado: faça backup dos dados de índices. Recomendamos criar um backup do banco de dados e dos índices como prática recomendada.
- Crie o índice