Personalize a instalação do AlloyDB Omni

Selecione uma versão da documentação:

Esta página descreve como personalizar a instalação do AlloyDB Omni, que é implementado através de uma imagem de contentor que suporta diferentes formas de personalização. Esta página mostra algumas personalizações comuns.

Ative e desative a telemetria do AlloyDB Omni

A telemetria do AlloyDB Omni implementa um agente cliente simples que é executado apenas na imagem do contentor do AlloyDB Omni. Este agente recolhe periodicamente um conjunto de métricas básicas pseudonimizadas e envia-as para um ponto final gerido pela Google.

Uma vez que o AlloyDB Omni é um produto transferível oferecido sem custo financeiro, esta telemetria fornece à Google métricas de informações essenciais não pessoalmente identificáveis (não IIP) relativamente aos ambientes de implementação e adoção genéricos de instâncias em execução. Estes dados ajudam a fundamentar o desenvolvimento de produtos e a priorização do apoio técnico.

As métricas recolhidas incluem o seguinte:

  • ID de instalação único (UUID pseudonimizado)
  • Versão do AlloyDB Omni e versão principal do PostgreSQL
  • Informações do sistema anfitrião, como o número de CPUs, a RAM e o tempo de atividade

Desative os relatórios de telemetria

Para impedir que o agente de telemetria seja executado e comunique métricas de utilização, defina o parâmetro de configuração do PostgreSQL omni_enable_telemetry como off. Pode desativar o agente de telemetria definindo a flag de telemetria no ficheiro postgresql.conf ou definindo a flag em tempo de execução através de ALTER SYSTEM.

Defina o sinalizador de telemetria no ficheiro postgresql.conf

Para modificar o ficheiro de configuração do PostgreSQL no diretório de dados persistentes do seu contentor, siga estes passos:

  1. Localize o ficheiro postgresql.conf no diretório de dados da base de dados ($PGDATA).
  2. Desative a telemetria do AlloyDB Omni.

    omni_enable_telemetry = off
    
  3. Para aplicar a alteração, reinicie o contentor do AlloyDB Omni. O agente de telemetria deixa de recolher e enviar métricas de utilização para a Google.

Defina o sinalizador de telemetria no tempo de execução com ALTER SYSTEM

Para definir a flag de telemetria e manter a alteração nos reinícios, siga estes passos:

  1. Ligue-se à sua instância do AlloyDB Omni através de psql:

    psql -h HOST -U USER -d DATABASE
    

    Faça as seguintes substituições:

    • HOST: o nome do anfitrião ou o endereço IP da sua instância do AlloyDB Omni, por exemplo, 127.0.0.1.
    • USER: o utilizador da base de dados ao qual quer estabelecer ligação, por exemplo, postgres.
    • DATABASE: a base de dados à qual quer estabelecer ligação, por exemplo, postgres.
  2. Execute o seguinte comando:

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. Atualize a configuração ou reinicie a instância. Em algumas configurações de contentores, pode ter de reiniciar a instância para garantir que a alteração é totalmente detetada pelo processo em segundo plano.

    SELECT pg_reload_conf();
    

    O agente de telemetria deixa de recolher e enviar métricas de utilização para a Google.

Ative os relatórios de telemetria

Se desativou anteriormente a telemetria do AlloyDB Omni, pode reativá-la definindo a flag omni_enable_telemetry como on. Ativa o agente de telemetria ao definir a flag no ficheiro postgresql.conf ou ao definir a flag em tempo de execução através de ALTER SYSTEM.

Defina o sinalizador de telemetria no ficheiro postgresql.conf

  1. Localize o ficheiro postgresql.conf no diretório de dados da base de dados ($PGDATA).
  2. Defina a seguinte linha:

    omni_enable_telemetry = on
    
  3. Para aplicar a alteração, reinicie o contentor do AlloyDB Omni.

Defina o sinalizador de telemetria no tempo de execução com ALTER SYSTEM

  1. Estabeleça ligação à sua instância do AlloyDB Omni através de psql.
  2. Execute o seguinte comando:

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. Para aplicar a alteração, reinicie o contentor do AlloyDB Omni.

    docker restart CONTAINER_NAME
    

    Faça a seguinte substituição:

    • CONTAINER_NAME: o nome do seu contentor do AlloyDB Omni, por exemplo, my-omni-1.

Verifique o estado da telemetria do AlloyDB Omni

Pode verificar o estado do agente de telemetria do AlloyDB Omni, incluindo se está ativado ou em execução. Também pode verificar a atividade do agente de telemetria.

Verifique se o agente de telemetria está ativado ou desativado

Para verificar o estado da definição de telemetria, siga estes passos:

  1. Ligue-se à sua instância.
  2. Execute o seguinte:
SHOW omni_enable_telemetry;

A saída devolve on ou off, consoante tenha desativado ou ativado a telemetria do AlloyDB Omni.

Verifique se o agente de telemetria está em execução

Para verificar se o agente de telemetria está em execução, execute o seguinte comando no anfitrião do contentor:

docker top CONTAINER_NAME

Faça a seguinte substituição:

  • CONTAINER_NAME: o nome do seu contentor do AlloyDB Omni, por exemplo, my-omni-1.

Se a telemetria estiver ativada e em execução, o resultado contém uma linha com o texto postgres: omni telemetry worker.

Verifique a atividade do agente de telemetria

Para verificar a atividade do agente de telemetria, execute o seguinte comando no anfitrião do contentor:

docker logs CONTAINER_NAME 2>&1 | grep telemetry

Faça a seguinte substituição:

  • CONTAINER_NAME: o nome do seu contentor do AlloyDB Omni, por exemplo, my-omni-1.

Se o agente de telemetria estiver em execução, os registos contêm mensagens semelhantes às seguintes:

LOG:  [telemetry_agent_worker.cc:143]  Started telemetry worker
LOG:  [telemetry_agent_worker.cc:161]  Running telemetry reporting agent
telemetry_agent: Uploading telemetry data to https://cloud.google.com/log.

Monte um diretório de dados externo

Por predefinição, o comando em Início rápido: instale o AlloyDB Omni armazena os dados da base de dados numa área gerida pelo Docker ou pelo Podman. Isto é conveniente para começar, mas dificulta a localização e a utilização do diretório de dados. Em alternativa, pode configurar uma montagem de associação para mapear o diretório de dados para uma localização conhecida no disco.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Substitua as seguintes variáveis:

  • CONTAINER_NAME: o nome que usou para o seu contentor. Por exemplo, my-omni-1.
  • NEW_PASSWORD: palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.
  • DATA_DIR: caminho do diretório do anfitrião onde os seus dados estão armazenados.
  • HOST_PORT: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta 5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique 5432.
  • IMAGE_TAG: use 17.5.0 para a imagem Debian mais recente ou 17.5.0-ubi para a imagem UBI mais recente.

Ative ulimits

Os parâmetros ulimit especificam os limites de processos que o contentor do Docker ou do Podman pode usar. Para um desempenho ideal, recomendamos que defina os seguintes ulimits:

  • nice=-20:-20: o AlloyDB Omni ajusta as prioridades dos processos para permitir que os processos críticos do PostgreSQL sejam executados com maior prioridade. A prioridade mais elevada dá aos processos uma maior atribuição de CPUs disponíveis. Para ajustar as prioridades do processo, especifique --ulimit=nice=-20:-20, que remove as limitações do contentor do AlloyDB Omni.

  • memlock=-1:-1: o AlloyDB Omni faz a gestão automática da memória. A definição de --ulimit=memlock=-1:-1 permite que a base de dados controle melhor a forma como as páginas de memória são trocadas, o que pode resultar num melhor desempenho.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Substitua as seguintes variáveis:

  • CONTAINER_NAME: nome que usou para o seu contentor. Por exemplo, my-omni-1.
  • NEW_PASSWORD: palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.
  • HOST_PORT: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta 5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique 5432.
  • IMAGE_TAG: use AlloyDB Omni para a imagem Debian mais recente ou AlloyDB Omni-ubi para a imagem UBI mais recente.

Especifique um controlador de registo

Por predefinição, o Docker e o Podman não fazem rotações de registos. Esta ação pode consumir muito espaço em disco e, eventualmente, esgotá-lo. Para usar um controlador de registo diferente, pode especificar o campo --log-driver. Por exemplo, para registar em journald:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Substitua as seguintes variáveis:

  • CONTAINER_NAME: nome que usou para o seu contentor. Por exemplo, my-omni-1.
  • NEW_PASSWORD: palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.
  • HOST_PORT: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta 5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique 5432.
  • IMAGE_TAG: use 17.5.0 para a imagem Debian mais recente ou use 17.5.0-ubi para a imagem UBI mais recente.

Para mais informações sobre os controladores de registo, consulte a documentação Configure logging drivers da Docker e a documentação podman-run da Podman.

Além disso, pode configurar o registo através do PostgreSQL. Para mais informações, consulte o artigo Configure a rotação de registos do AlloyDB Omni.

Monte um volume de memória partilhada

Se planeia usar o motor de colunas do AlloyDB com o AlloyDB Omni, recomendamos que disponibilize memória partilhada ao contentor do AlloyDB Omni. O método para o fazer varia consoante o sistema operativo do anfitrião, conforme mostrado nos exemplos seguintes.

Linux

Para disponibilizar a memória partilhada ao contentor, monte /dev/shm:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Substitua as seguintes variáveis:

  • CONTAINER_NAME: nome que usou para o seu contentor. Por exemplo, my-omni-1.
  • NEW_PASSWORD: palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.
  • HOST_PORT: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta 5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique 5432.
  • IMAGE_TAG: use 17.5.0 para a imagem Debian mais recente ou use 17.5.0-ubi para a imagem UBI mais recente.

macOS

Para disponibilizar a memória partilhada ao contentor, inclua a flag --shm-size:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Substitua as seguintes variáveis:

  • CONTAINER_NAME: nome que usou para o seu contentor. Por exemplo, my-omni-1.
  • NEW_PASSWORD: palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.
  • SHARED_MEMORY_SIZE: tamanho a definir para /dev/shm no contentor, no formato descrito em Executar contentores. Por exemplo, para especificar um gigabyte, use o valor 1g.
  • HOST_PORT: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta 5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique 5432.
  • IMAGE_TAG: use 17.5.0 para a imagem Debian mais recente ou 17.5.0-ubi para a imagem UBI mais recente.

Recomendamos que defina o tamanho da memória partilhada para um número de megabytes igual, pelo menos, ao valor do indicador google_job_scheduler.max_parallel_workers_per_job da sua base de dados, multiplicado por 250. Para mais informações sobre o motor de colunas, consulte o artigo Configure o motor de colunas no AlloyDB Omni.

Por exemplo, se a flag google_job_scheduler.max_parallel_workers_per_jobdatabase estiver definida para o valor predefinido de 2, considere adicionar uma flag de --shm-size=500m ou superior ao iniciar o servidor da base de dados.

Para mais informações sobre a flag --shm-size, consulte o artigo Executar contentores.

Ative extensões

A lista de extensões disponíveis no AlloyDB Omni está disponível em Extensões de base de dados suportadas. Embora o PostGIS e o Orafce não estejam incluídos no AlloyDB Omni, é possível instalá-los seguindo as instruções:

As extensões instaladas são ativadas através de declarações CREATE EXTENSION padrão do PostgreSQL, conforme detalhado em Ative uma extensão.