Personalizar a instalação do AlloyDB Omni

Selecione uma versão da documentação:

Nesta página, descrevemos como personalizar a instalação do AlloyDB Omni, que é implantada por uma imagem de contêiner compatível com diferentes formas de personalização. Esta página mostra algumas personalizações comuns.

Ativar e desativar a telemetria do AlloyDB Omni

A telemetria do AlloyDB Omni implementa um agente cliente leve que é executado apenas na imagem do contêiner do AlloyDB Omni. Esse agente coleta periodicamente um conjunto de métricas básicas e pseudônimas e as envia para um endpoint gerenciado pelo Google.

Como o AlloyDB Omni é um produto para download oferecido sem custos financeiros, essa telemetria fornece ao Google métricas essenciais e não pessoais (não PII) sobre a adoção genérica e os ambientes de implantação de instâncias em execução. Esses dados ajudam a informar o desenvolvimento de produtos e a priorização do suporte.

As métricas coletadas incluem:

  • ID de instalação exclusivo (UUID pseudônimo)
  • Versão do AlloyDB Omni e versão principal do PostgreSQL
  • Informações do sistema host, como contagem de CPU, RAM e tempo de atividade

Desativar a geração de relatórios de telemetria

Para impedir que o agente de telemetria seja executado e informe métricas de uso, defina o parâmetro de configuração do PostgreSQL omni_enable_telemetry como off. É possível desativar o agente de telemetria definindo a flag de telemetria no arquivo postgresql.conf ou definindo a flag durante a execução usando ALTER SYSTEM.

Definir a flag de telemetria no arquivo postgresql.conf

Para modificar o arquivo de configuração do PostgreSQL no diretório de dados persistentes do contêiner, siga estas etapas:

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

    omni_enable_telemetry = off
    
  3. Para aplicar a mudança, reinicie o contêiner do AlloyDB Omni. O agente de telemetria para de coletar e enviar métricas de uso ao Google.

Definir a flag de telemetria no tempo de execução usando ALTER SYSTEM

Para definir a flag de telemetria e manter a mudança nas reinicializações, siga estas etapas:

  1. Conecte-se à instância do AlloyDB Omni usando psql:

    psql -h HOST -U USER -d DATABASE
    

    Faça as seguintes substituições:

    • HOST: o nome do host ou o endereço IP da sua instância do AlloyDB Omni. Por exemplo, 127.0.0.1.
    • USER: o usuário do banco de dados que você quer usar para se conectar, por exemplo, postgres.
    • DATABASE: o banco de dados a que você quer se conectar, por exemplo, postgres.
  2. Execute este comando:

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. Atualize a configuração ou reinicie a instância. Em algumas configurações de contêiner, talvez seja necessário reiniciar a instância para garantir que a mudança seja totalmente captada pelo worker em segundo plano.

    SELECT pg_reload_conf();
    

    O agente de telemetria para de coletar e enviar métricas de uso ao Google.

Ativar relatórios de telemetria

Se você desativou a telemetria do AlloyDB Omni, é possível reativá-la definindo a flag omni_enable_telemetry como on. Para ativar o agente de telemetria, defina a flag no arquivo postgresql.conf ou em tempo de execução usando ALTER SYSTEM.

Definir a flag de telemetria no arquivo postgresql.conf

  1. Localize o arquivo postgresql.conf no diretório de dados do banco de dados ($PGDATA).
  2. Defina a seguinte linha:

    omni_enable_telemetry = on
    
  3. Para aplicar a mudança, reinicie o contêiner do AlloyDB Omni.

Definir a flag de telemetria no tempo de execução usando ALTER SYSTEM

  1. Conecte-se à instância do AlloyDB Omni usando psql.
  2. Execute este comando:

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. Para aplicar a mudança, reinicie o contêiner do AlloyDB Omni.

    docker restart CONTAINER_NAME
    

    Faça a seguinte substituição:

    • CONTAINER_NAME: o nome do seu contêiner do AlloyDB Omni. Por exemplo, my-omni-1.

Verificar o status da telemetria do AlloyDB Omni

É possível verificar o status do agente de telemetria do AlloyDB Omni, incluindo se ele está ativado ou em execução. Você também pode verificar a atividade do agente de telemetria.

Verificar se o agente de telemetria está ativado ou desativado

Para verificar o status da configuração de telemetria, siga estas etapas:

  1. Conecte-se à instância.
  2. Execute o comando a seguir:
SHOW omni_enable_telemetry;

A saída retorna on ou off, dependendo se você desativou ou ativou a telemetria do AlloyDB Omni.

Verificar 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 host do contêiner:

docker top CONTAINER_NAME

Faça a seguinte substituição:

  • CONTAINER_NAME: o nome do seu contêiner do AlloyDB Omni. Por exemplo, my-omni-1.

Se a telemetria estiver ativada e em execução, a saída vai conter uma linha com o texto postgres: omni telemetry worker.

Verificar a atividade do agente de telemetria

Para verificar a atividade do agente de telemetria, execute o seguinte comando no host do contêiner:

docker logs CONTAINER_NAME 2>&1 | grep telemetry

Faça a seguinte substituição:

  • CONTAINER_NAME: o nome do seu contêiner do AlloyDB Omni. Por exemplo, my-omni-1.

Se o agente de telemetria estiver em execução, os registros vão conter mensagens semelhantes a estas:

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.

Montar um diretório de dados externo

Por padrão, o comando em Início rápido: instalar o AlloyDB Omni armazena os dados do banco de dados em uma área gerenciada pelo Docker ou Podman. Isso é conveniente para começar, mas dificulta a localização e o uso do diretório de dados. Em vez disso, configure uma vinculação de montagem para mapear o diretório de dados para um local conhecido 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: nome usado para o contêiner. Por exemplo, my-omni-1.
  • NEW_PASSWORD: senha atribuída ao usuário postgres do novo contêiner após a criação.
  • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
  • HOST_PORT: porta TCP na máquina host em que o contêiner vai publicar a própria porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 5432.
  • IMAGE_TAG: use 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi para a imagem mais recente do UBI.

Ativar ulimits

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

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

  • memlock=-1:-1: o AlloyDB Omni realiza o gerenciamento automático de memória. A definição de --ulimit=memlock=-1:-1 permite que o banco de dados controle melhor como as páginas de memória são trocadas, o que pode resultar em uma performance melhor.

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 usado para o contêiner. Por exemplo, my-omni-1.
  • NEW_PASSWORD: senha atribuída ao usuário postgres do novo contêiner após a criação.
  • HOST_PORT: porta TCP na máquina host em que o contêiner vai publicar a própria porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 5432.
  • IMAGE_TAG: use AlloyDB Omni para a imagem mais recente do Debian ou AlloyDB Omni-ubi para a imagem mais recente do UBI.

Especificar um driver de registro

Por padrão, o Docker e o Podman não fazem rotações de registros. Isso pode usar muito espaço em disco e, eventualmente, levar ao esgotamento dele. Para usar um driver de registro em log diferente, especifique o campo --log-driver. Por exemplo, para fazer login 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 usado para o contêiner. Por exemplo, my-omni-1.
  • NEW_PASSWORD: senha atribuída ao usuário postgres do novo contêiner após a criação.
  • HOST_PORT: porta TCP na máquina host em que o contêiner vai publicar a própria porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 5432.
  • IMAGE_TAG: use 17.5.0 para a imagem mais recente do Debian ou use 17.5.0-ubi para a imagem mais recente do UBI.

Para mais informações sobre drivers de geração de registros, consulte a documentação do Docker Configurar drivers de geração de registros e do Podman podman-run.

Além disso, é possível configurar o registro em registros usando o PostgreSQL. Para mais informações, consulte Configurar a rotação de registros do AlloyDB Omni.

Montar um volume de memória compartilhada

Se você planeja usar o mecanismo colunar do AlloyDB com o AlloyDB Omni, recomendamos disponibilizar a memória compartilhada para o contêiner do AlloyDB Omni. O método para fazer isso varia de acordo com o sistema operacional do host, conforme mostrado nos exemplos a seguir.

Linux

Para disponibilizar a memória compartilhada ao contêiner, 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 usado para o contêiner. Por exemplo, my-omni-1.
  • NEW_PASSWORD: senha atribuída ao usuário postgres do novo contêiner após a criação.
  • HOST_PORT: porta TCP na máquina host em que o contêiner vai publicar a própria porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 5432.
  • IMAGE_TAG: use 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi para a imagem mais recente do UBI.

macOS

Para disponibilizar a memória compartilhada ao contêiner, 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 usado para o contêiner. Por exemplo, my-omni-1.
  • NEW_PASSWORD: senha atribuída ao usuário postgres do novo contêiner após a criação.
  • SHARED_MEMORY_SIZE: tamanho a ser definido para /dev/shm no contêiner, no formato descrito em Execução de contêineres. Por exemplo, para especificar um gigabyte, use o valor 1g.
  • HOST_PORT: porta TCP na máquina host em que o contêiner vai publicar a própria porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 5432.
  • IMAGE_TAG: use 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi para a imagem mais recente do UBI.

Recomendamos que você defina o tamanho da memória compartilhada como um número de megabytes igual a pelo menos o valor da flag google_job_scheduler.max_parallel_workers_per_job do banco de dados, multiplicado por 250. Para mais informações sobre o mecanismo colunar, consulte Configurar o mecanismo colunar no AlloyDB Omni.

Por exemplo, se a flag google_job_scheduler.max_parallel_workers_per_job do banco de dados estiver definida como o valor padrão 2, considere adicionar uma flag de --shm-size=500m ou maior ao iniciar o servidor de banco de dados.

Para mais informações sobre a flag --shm-size, consulte Executar contêineres.

Ativar extensões

A lista de extensões disponíveis no AlloyDB Omni está em Extensões de banco de dados compatíveis. Embora o PostGIS e o Orafce não estejam incluídos no AlloyDB Omni, é possível instalar os dois seguindo estas instruções:

As extensões instaladas são ativadas usando instruções padrão do PostgreSQL CREATE EXTENSION, conforme detalhado em Ativar uma extensão.