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.

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 16.8.0 para a imagem mais recente do Debian ou 16.8.0-ubi para a imagem mais recente da 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 da 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 do espaço. 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 16.8.0 para a imagem mais recente do Debian ou use 16.8.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 16.8.0 para a imagem mais recente do Debian ou 16.8.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 16.8.0 para a imagem mais recente do Debian ou 16.8.0-ubi para a imagem mais recente da 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.