Personalize a instalação do AlloyDB Omni

Selecione uma versão da documentação:

O AlloyDB Omni é implementado através de uma imagem de contentor, o que permite diferentes formas de personalização. Esta página mostra algumas personalizações comuns.

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 e 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 ligaçã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:latest

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:latest

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:latest

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:latest

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.
  • 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.

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:latest

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:latest

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:latest

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:latest

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.

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, levar à exaustão do espaço em disco. 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:latest

Docker

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

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:latest

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:latest

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.

Para mais informações sobre os controladores de registo, consulte a documentação Configure logging drivers do Docker e a documentação podman-run do 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:latest

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:latest

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:latest

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:latest

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.

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:latest

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:latest

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:latest

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:latest

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.

Recomendamos que defina o tamanho da memória partilhada para um número de megabytes igual a, pelo menos, o 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.