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:
- Localize o ficheiro
postgresql.confno diretório de dados da base de dados ($PGDATA). Desative a telemetria do AlloyDB Omni.
omni_enable_telemetry = off
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:
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.
Execute o seguinte comando:
ALTER SYSTEM SET omni_enable_telemetry = 'off';
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
- Localize o ficheiro
postgresql.confno diretório de dados da base de dados ($PGDATA). Defina a seguinte linha:
omni_enable_telemetry = on
Para aplicar a alteração, reinicie o contentor do AlloyDB Omni.
Defina o sinalizador de telemetria no tempo de execução com ALTER SYSTEM
- Estabeleça ligação à sua instância do AlloyDB Omni através de
psql. Execute o seguinte comando:
ALTER SYSTEM SET omni_enable_telemetry = 'on';
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:
- Ligue-se à sua instância.
- 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 utilizadorpostgresdo 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 porta5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432.IMAGE_TAG: use16.9.0para a imagem Debian mais recente ou16.9.0-ubipara 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:-1permite 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 utilizadorpostgresdo 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 porta5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432.IMAGE_TAG: useAlloyDB Omnipara a imagem Debian mais recente ouAlloyDB Omni-ubipara 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 utilizadorpostgresdo 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 porta5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432.IMAGE_TAG: use16.9.0para a imagem Debian mais recente ou use16.9.0-ubipara 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 utilizadorpostgresdo 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 porta5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432.IMAGE_TAG: use16.9.0para a imagem Debian mais recente ou use16.9.0-ubipara 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 utilizadorpostgresdo novo contentor após a respetiva criação.SHARED_MEMORY_SIZE: tamanho a definir para/dev/shmno contentor, no formato descrito em Executar contentores. Por exemplo, para especificar um gigabyte, use o valor1g.HOST_PORT: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432.IMAGE_TAG: use16.9.0para a imagem Debian mais recente ou16.9.0-ubipara 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.