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áriopostgresdo 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: use15.7.1para a imagem mais recente do Debian ou15.7.1-ubipara 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:-1permite 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áriopostgresdo 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 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áriopostgresdo 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: use15.7.1para a imagem mais recente do Debian ou use15.7.1-ubipara 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áriopostgresdo 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: use15.7.1para a imagem mais recente do Debian ou use15.7.1-ubipara 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áriopostgresdo 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: use15.7.1para a imagem mais recente do Debian ou15.7.1-ubipara 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.