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 sobre a 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:
- Localize o arquivo
postgresql.confno diretório de dados do banco de dados ($PGDATA). Desative a telemetria do AlloyDB Omni.
omni_enable_telemetry = off
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:
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.
Execute este comando:
ALTER SYSTEM SET omni_enable_telemetry = 'off';
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
- Localize o arquivo
postgresql.confno diretório de dados do banco de dados ($PGDATA). Defina a seguinte linha:
omni_enable_telemetry = on
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
- Conecte-se à instância do AlloyDB Omni usando
psql. Execute este comando:
ALTER SYSTEM SET omni_enable_telemetry = 'on';
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:
- Conecte-se à instância.
- 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áriopostgresdo 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 porta5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique5432.IMAGE_TAG: use16.9.0para a imagem mais recente do Debian ou16.9.0-ubipara 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:-1permite 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áriopostgresdo 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 porta5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique5432.IMAGE_TAG: useAlloyDB Omnipara a imagem mais recente do Debian ouAlloyDB Omni-ubipara 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áriopostgresdo 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 porta5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique5432.IMAGE_TAG: use16.9.0para a imagem mais recente do Debian ou use16.9.0-ubipara 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áriopostgresdo 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 porta5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique5432.IMAGE_TAG: use16.9.0para a imagem mais recente do Debian ou16.9.0-ubipara 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áriopostgresdo novo contêiner após a criação.SHARED_MEMORY_SIZE: tamanho a ser definido para/dev/shmno contêiner, no formato descrito em Execução de contêineres. Por exemplo, para especificar um gigabyte, use o valor1g.HOST_PORT: porta TCP na máquina host em que o contêiner vai publicar a própria porta5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique5432.IMAGE_TAG: use16.9.0para a imagem mais recente do Debian ou16.9.0-ubipara 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.