Personalizar a instalação do AlloyDB Omni

Selecione uma versão da documentação:

Esta página descreve como personalizar a instalação do AlloyDB Omni, que é implantada por uma imagem de contêiner que oferece suporte a 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, é possível configurar uma montagem de vinculação 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 novo usuário postgres do 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 15.7.1 para a imagem mais recente do Debian ou 15.7.1-ubi para a imagem UBI mais recente.

Ativar ulimits

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

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

  • memlock=-1:-1: o AlloyDB Omni realiza o gerenciamento automático de memória. A configuraçã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 melhor performance.

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 novo usuário postgres do 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 UBI mais recente.

Especificar um driver de geração de registros

Por padrão, o Docker e o Podman não realizam rotações de registros. Isso pode usar muito espaço em disco e, eventualmente, levar ao esgotamento do espaço em disco. Para usar um driver de geração de registros diferente, especifique o campo --log-driver. Por exemplo, para fazer login no 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 novo usuário postgres do 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 15.7.1 para a imagem mais recente do Debian ou use 15.7.1-ubi para a imagem UBI mais recente.

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

Além disso, é possível configurar a geração de 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 para o 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 novo usuário postgres do 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 15.7.1 para a imagem mais recente do Debian ou use 15.7.1-ubi para a imagem UBI mais recente.

macOS

Para disponibilizar a memória compartilhada para o 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 novo usuário postgres do 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 15.7.1 para a imagem mais recente do Debian ou 15.7.1-ubi para a imagem UBI mais recente.

Recomendamos definir 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, vezes 250. Para mais informações sobre o mecanismo colunar, consulte Configurar o mecanismo colunar no AlloyDB Omni.

Por exemplo, se a flag de banco de dados google_job_scheduler.max_parallel_workers_per_job estiver definida como o valor padrão de 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 Execução de contêineres.

Ativar extensões

A lista de extensões disponíveis no AlloyDB Omni está disponível em Extensões de banco de dados compatíveis. Embora o PostGIS e o Orafce não estejam incluídos no AlloyDB Omni, eles podem ser instalados seguindo as instruções:

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