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 mais recente do UBI.
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 mais recente do UBI.
Especificar um driver de registro
Por padrão, o Docker e o Podman não realizam rotações de registro. Isso pode usar muito espaço em disco e, eventualmente, levar ao esgotamento do espaço em disco. Para usar um driver de registro 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 mais recente do UBI.
Para mais informações sobre drivers de registro, consulte
a documentação do Docker sobre Configurar drivers de registro
e do Podman sobre podman-run.
Além disso, é possível configurar o registro 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 mais recente do UBI.
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 mais recente do UBI.
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.