Para fazer upgrade entre as principais versões do PostgreSQL, consulte Fazer upgrade do AlloyDB Omni em uma VM.
As instruções nesta página se aplicam a implantações independentes de nó único e a nós de banco de dados individuais em topologias de vários nós, como implantações com réplicas de leitura ou nós de espera de alta disponibilidade. Analise as seguintes considerações com base na sua configuração:
- Diretório de dados externo: antes de interromper e remover um contêiner, confirme
se os dados do banco de dados estão armazenados em um diretório de host permanente montado
no contêiner (por exemplo,
-v DATA_DIR:/var/lib/postgresql/data). A remoção de um contêiner que armazena dados apenas no sistema de arquivos do contêiner exclui os dados do banco de dados. Para mais informações, consulte Instalar o AlloyDB Omni usando contêineres. - Topologias de vários nós: sempre faça upgrade de todos os nós de réplica e de espera antes de fazer upgrade do nó principal. Em uma configuração de alta disponibilidade, pause o failover automático ou a detecção de falhas antes de interromper os contêineres e faça uma troca para um nó de espera atualizado antes de fazer upgrade do nó principal anterior.
- Imagens de contêiner personalizadas com extensões: se você criou uma imagem de contêiner personalizada com extensões de terceiros, como PostGIS ou Orafce, recrie a imagem do contêiner personalizada usando a imagem de base da versão secundária atualizada antes de recriar o contêiner.
Antes de começar
Antes de fazer upgrade do AlloyDB Omni, siga estas etapas:
- Planeje uma janela de manutenção ou um breve tempo de inatividade do serviço, porque a substituição do contêiner exige a interrupção temporária do serviço de banco de dados.
- Faça um backup completo do banco de dados antes de iniciar o upgrade. Para mais informações, consulte Visão geral de backup e restauração.
- Se você estiver fazendo upgrade de uma topologia de vários nós, identifique o nó principal atual e todos os nós de espera ou de réplica para que possa fazer upgrade dos nós de espera e de réplica primeiro.
Inspecione o contêiner em execução para registrar a imagem atual, a montagem do diretório de dados do host, os mapeamentos de porta, as variáveis de ambiente e as flags de ambiente de execução para recriar o contêiner com a mesma configuração:
Docker
docker inspect CONTAINER_NAMEPodman
podman inspect CONTAINER_NAMESubstitua
CONTAINER_NAMEpelo nome do contêiner do AlloyDB Omni. Por exemplo,my-omni.Verifique a versão atual do banco de dados do AlloyDB Omni antes de fazer upgrade:
Docker
docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"Podman
podman exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"
Extrair a imagem de contêiner atualizada
Extraia a imagem do contêiner da versão secundária de destino para a máquina host:
Docker
docker pull IMAGE_URIPodman
podman pull IMAGE_URISubstitua IMAGE_URI pelo URI da imagem do contêiner e pela tag de versão secundária para a qual você quer fazer upgrade. Por exemplo, google/alloydbomni:18.4.0 para a imagem do Debian ou google/alloydbomni:18.4.0-ubi9 para a imagem de base universal (UBI, na sigla em inglês) do Red Hat.
Se a implantação usar uma imagem de contêiner personalizada com extensões como
PostGIS ou
Orafce, atualize a instrução FROM ou o
argumento de build OMNI_VERSION no Dockerfile para referenciar a tag de versão secundária
atualizada e, em seguida, crie a imagem personalizada atualizada antes de continuar.
Fazer upgrade do AlloyDB Omni
Para fazer upgrade da instalação do AlloyDB Omni para uma versão secundária mais recente, siga as etapas a seguir em cada nó. Em uma topologia de vários nós, conclua estas etapas em cada nó de espera ou réplica antes de fazer upgrade do nó principal:
Interrompa e remova o contêiner do AlloyDB Omni:
Docker
docker container stop CONTAINER_NAME docker container rm CONTAINER_NAMEPodman
podman container stop CONTAINER_NAME podman container rm CONTAINER_NAMEInterromper e remover o contêiner não afeta os arquivos do banco de dados no diretório de dados do host montado.
Recrie e inicie o contêiner do AlloyDB Omni usando a imagem da versão secundária atualizada e montando o diretório de dados do host atual:
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ IMAGE_URIPodman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ IMAGE_URISubstitua:
CONTAINER_NAME: o nome do contêiner do AlloyDB Omni. Por exemplo,my-omni.PASSWORD: a senha do usuáriopostgresdo contêiner. Quando você monta um diretório de dados inicializado, o contêiner mantém a senha configurada no banco de dados.DATA_DIR: o caminho do diretório do host em que os dados do banco de dados estão armazenados.HOST_PORT: a porta TCP na máquina host que publica a porta do contêiner5432, por exemplo,5432.IMAGE_URI: o URI da imagem do contêiner da versão secundária atualizada (ou o URI da imagem personalizada recriada), por exemplo,google/alloydbomni:18.4.0.
Use a mesma variante de imagem do SO de base (Debian ou UBI) do contêiner anterior para que a propriedade do arquivo no diretório de dados do host corresponda ao usuário
postgresdo contêiner. Se o contêiner anterior usava outras flags de ambiente de execução, como--ulimit,--log-driver,--shm-sizeou-v /dev/shm:/dev/shm, inclua essas flags ao recriar o contêiner. Para mais informações, consulte Configurar o AlloyDB Omni para produção.
Verificar o upgrade
Depois de recriar e iniciar o contêiner, confirme se o serviço de banco de dados está executando a versão secundária atualizada:
Verifique o status do contêiner do AlloyDB Omni e confirme se ele é
Up:Docker
docker ps --filter "name=CONTAINER_NAME"Podman
podman ps --filter "name=CONTAINER_NAME"Conecte-se ao banco de dados e confirme se a versão atualizada está ativa:
Docker
docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"Podman
podman exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"
Reverter o upgrade
Se você precisar reverter a instalação do AlloyDB Omni para a versão secundária anterior, interrompa e remova o contêiner atualizado e inicie um contêiner que use a imagem da versão secundária anterior:
Interrompa e remova o contêiner do AlloyDB Omni atualizado:
Docker
docker container stop CONTAINER_NAME docker container rm CONTAINER_NAMEPodman
podman container stop CONTAINER_NAME podman container rm CONTAINER_NAMERecrie e inicie o contêiner usando a imagem da versão secundária anterior e montando o mesmo diretório de dados do host:
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ ROLLBACK_IMAGE_URIPodman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ ROLLBACK_IMAGE_URISubstitua:
CONTAINER_NAME: o nome do contêiner do AlloyDB Omni. Por exemplo,my-omni.PASSWORD: a senha do usuáriopostgresdo contêiner. Quando você monta um diretório de dados inicializado, o contêiner mantém a senha configurada no banco de dados.DATA_DIR: o caminho do diretório do host em que os dados do banco de dados estão armazenados.HOST_PORT: a porta TCP na máquina host que publica a porta do contêiner5432, por exemplo,5432.ROLLBACK_IMAGE_URI: o URI da imagem do contêiner e a tag de versão secundária da instalação anterior (ou o URI da imagem personalizada anterior), por exemplo,google/alloydbomni:18.1.0.
Confirme se o contêiner está em execução e se a versão anterior do banco de dados está ativa:
Docker
docker ps --filter "name=CONTAINER_NAME" docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"Podman
podman ps --filter "name=CONTAINER_NAME" podman exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"
A seguir
- Fazer upgrade do AlloyDB Omni em uma VM
- Configurar o AlloyDB Omni para produção
- Personalizar a instalação do AlloyDB Omni
- Gerenciar e monitorar o AlloyDB Omni
- Visão geral de backup e restauração