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.

Ativar e desativar a telemetria do AlloyDB Omni

A telemetria do AlloyDB Omni implementa um agente cliente leve que é executado apenas na imagem do contêiner do AlloyDB Omni. Esse agente coleta periodicamente um conjunto de métricas básicas pseudônimas e as envia para um endpoint gerenciado pelo Google.

Como o AlloyDB Omni é um produto para download oferecido sem custos financeiros, essa telemetria fornece ao Google métricas essenciais e não pessoais (não PII) sobre a adoção genérica e os ambientes de implantação de instâncias em execução. Esses dados ajudam a informar o desenvolvimento de produtos e a priorização do suporte.

As métricas coletadas incluem:

  • ID de instalação exclusivo (UUID pseudônimo)
  • Versão do AlloyDB Omni e versão principal do PostgreSQL
  • Informações do sistema host, como contagem de CPU, RAM e tempo de atividade

Desativar a geração de relatórios de telemetria

Para impedir que o agente de telemetria seja executado e informe métricas de uso, defina o parâmetro de configuração do PostgreSQL omni_enable_telemetry como off. É possível desativar o agente de telemetria definindo a flag de telemetria no arquivo postgresql.conf ou definindo a flag durante a execução usando ALTER SYSTEM.

Definir a flag de telemetria no arquivo postgresql.conf

Para modificar o arquivo de configuração do PostgreSQL no diretório de dados persistentes do contêiner, siga estas etapas:

  1. Localize o arquivo postgresql.conf no diretório de dados do banco de dados ($PGDATA).
  2. Desativar a telemetria do AlloyDB Omni.

    omni_enable_telemetry = off
    
  3. Para aplicar a mudança, reinicie o contêiner do AlloyDB Omni. O agente de telemetria para de coletar e enviar métricas de uso ao Google.

Definir a flag de telemetria no tempo de execução usando ALTER SYSTEM

Para definir a flag de telemetria e manter a mudança nas reinicializações, siga estas etapas:

  1. Conecte-se à instância do AlloyDB Omni usando psql:

    psql -h HOST -U USER -d DATABASE
    

    Faça as seguintes substituições:

    • HOST: o nome do host ou o endereço IP da sua instância do AlloyDB Omni. Por exemplo, 127.0.0.1.
    • USER: o usuário do banco de dados que você quer usar para se conectar, por exemplo, postgres.
    • DATABASE: o banco de dados a que você quer se conectar, por exemplo, postgres.
  2. Execute este comando:

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. Atualize a configuração ou reinicie a instância. Em algumas configurações de contêiner, talvez seja necessário reiniciar a instância para garantir que a mudança seja totalmente captada pelo worker em segundo plano.

    SELECT pg_reload_conf();
    

    O agente de telemetria para de coletar e enviar métricas de uso ao Google.

Ativar relatórios de telemetria

Se você desativou a telemetria do AlloyDB Omni, é possível reativá-la definindo a flag omni_enable_telemetry como on. Para ativar o agente de telemetria, defina a flag no arquivo postgresql.conf ou em tempo de execução usando ALTER SYSTEM.

Definir a flag de telemetria no arquivo postgresql.conf

  1. Localize o arquivo postgresql.conf no diretório de dados do banco de dados ($PGDATA).
  2. Defina a seguinte linha:

    omni_enable_telemetry = on
    
  3. Para aplicar a mudança, reinicie o contêiner do AlloyDB Omni.

Definir a flag de telemetria no tempo de execução usando ALTER SYSTEM

  1. Conecte-se à instância do AlloyDB Omni usando psql.
  2. Execute este comando:

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. Para aplicar a mudança, reinicie o contêiner do AlloyDB Omni.

    docker restart CONTAINER_NAME
    

    Faça a seguinte substituição:

    • CONTAINER_NAME: o nome do seu contêiner do AlloyDB Omni. Por exemplo, my-omni-1.

Verificar o status da telemetria do AlloyDB Omni

É possível verificar o status do agente de telemetria do AlloyDB Omni, incluindo se ele está ativado ou em execução. Você também pode verificar a atividade do agente de telemetria.

Verificar se o agente de telemetria está ativado ou desativado

Para verificar o status da configuração de telemetria, siga estas etapas:

  1. Conecte-se à instância.
  2. Execute o comando a seguir:
SHOW omni_enable_telemetry;

A saída retorna on ou off, dependendo se você desativou ou ativou a telemetria do AlloyDB Omni.

Verificar se o agente de telemetria está em execução

Para verificar se o agente de telemetria está em execução, execute o seguinte comando no host do contêiner:

docker top CONTAINER_NAME

Faça a seguinte substituição:

  • CONTAINER_NAME: o nome do seu contêiner do AlloyDB Omni. Por exemplo, my-omni-1.

Se a telemetria estiver ativada e em execução, a saída vai conter uma linha com o texto postgres: omni telemetry worker.

Verificar a atividade do agente de telemetria

Para verificar a atividade do agente de telemetria, execute o seguinte comando no host do contêiner:

docker logs CONTAINER_NAME 2>&1 | grep telemetry

Faça a seguinte substituição:

  • CONTAINER_NAME: o nome do seu contêiner do AlloyDB Omni. Por exemplo, my-omni-1.

Se o agente de telemetria estiver em execução, os registros vão conter mensagens semelhantes a estas:

LOG:  [telemetry_agent_worker.cc:143]  Started telemetry worker
LOG:  [telemetry_agent_worker.cc:161]  Running telemetry reporting agent
telemetry_agent: Uploading telemetry data to https://cloud.google.com/log.

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 dele.
  • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do UBI.

Como montar um diretório de dados externo ao usar o SELinux

Se o SELinux estiver ativado e o modo definido como enforcing, a tentativa de montar um diretório de dados externo resultará em erros de permissão. Para montar um diretório de dados externo ao usar o SELinux, siga estas instruções:

Docker

  1. Se o contêiner do AlloyDB Omni estiver em execução, interrompa-o.
    docker stop CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  2. Defina o modo do SELinux como permissive. Isso permite executar o contêiner e identificar detalhes sobre qual acesso é necessário para montar um diretório de dados externo.
    setenforce 0
  3. Execute o contêiner com um diretório de dados externo.
    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
    
    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 dele.
    • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do UBI.
  4. Se ainda não estiver instalado, instale policycoreutils-python-utils pelo gerenciador de pacotes. Esse pacote fornece utilitários necessários para gerenciar políticas do SELinux.
  5. Para seu diretório de dados externos, defina o contexto do SELinux adequado.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    Substitua a seguinte variável:
    • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
  6. Use ausearch para saber mais sobre os requisitos de permissão adicionais.
    ausearch -c 'postgres' --raw > postgres.avc
  7. Crie um perfil de segurança do SELinux com base no seu contêiner do AlloyDB Omni e nas informações de permissão ausearch.
    docker inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  8. Carregue o módulo SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  9. Ative mmap.
    setsebool -P domain_can_mmap_files 1
  10. Interrompa e remova o contêiner do AlloyDB Omni.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  11. Defina o modo do SELinux como enforcing.
    setenforce 1
  12. Recrie o contêiner do AlloyDB Omni.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    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 dele.
    • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do UBI.

Docker

  1. Se o contêiner do AlloyDB Omni estiver em execução, interrompa-o.
    docker stop CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  2. Defina o modo do SELinux como permissive. Isso permite executar o contêiner e identificar detalhes sobre qual acesso é necessário para montar um diretório de dados externo.
    sudo setenforce 0
  3. Execute o contêiner com um diretório de dados externo.
    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
    
    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 dele.
    • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do UBI.
  4. Se ainda não estiver instalado, instale policycoreutils-python-utils pelo gerenciador de pacotes. Esse pacote fornece utilitários necessários para gerenciar políticas do SELinux.
  5. Se o diretório de dados externos não estiver no diretório inicial, defina o contexto do SELinux apropriado.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    Substitua a seguinte variável:
    • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
  6. Use ausearch para saber mais sobre os requisitos de permissão adicionais.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. Crie um perfil de segurança do SELinux com base no seu contêiner do AlloyDB Omni e nas informações de permissão ausearch.
    docker inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  8. Carregue o módulo SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  9. Ative mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. Interrompa e remova o contêiner do AlloyDB Omni.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  11. Defina o modo do SELinux como enforcing.
    sudo setenforce 1
  12. Recrie o contêiner do AlloyDB Omni.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    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 dele.
    • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do UBI.

Podman

  1. Se o contêiner do AlloyDB Omni estiver em execução, interrompa-o.
    podman stop CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  2. Defina o modo do SELinux como permissive. Isso permite executar o contêiner e identificar detalhes sobre qual acesso é necessário para montar um diretório de dados externo.
    setenforce 0
  3. Execute o contêiner com um diretório de dados externo.
    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 dele.
    • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do UBI.
  4. Se ainda não estiver instalado, instale policycoreutils-python-utils pelo gerenciador de pacotes. Esse pacote fornece utilitários necessários para gerenciar políticas do SELinux.
  5. Para seu diretório de dados externos, defina o contexto do SELinux adequado.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    Substitua a seguinte variável:
    • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
  6. Use ausearch para saber mais sobre os requisitos de permissão adicionais.
    ausearch -c 'postgres' --raw > postgres.avc
  7. Crie um perfil de segurança do SELinux com base no seu contêiner do AlloyDB Omni e nas informações de permissão ausearch.
    podman inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  8. Carregue o módulo SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  9. Ative mmap.
    setsebool -P domain_can_mmap_files 1
  10. Interrompa e remova o contêiner do AlloyDB Omni.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  11. Defina o modo do SELinux como enforcing.
    setenforce 1
  12. Recrie o contêiner do AlloyDB Omni.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    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 dele.
    • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do UBI.

Podman

  1. Se o contêiner do AlloyDB Omni estiver em execução, interrompa-o.
    podman stop CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  2. Defina o modo do SELinux como permissive. Isso permite executar o contêiner e identificar detalhes sobre qual acesso é necessário para montar um diretório de dados externo.
    sudo setenforce 0
  3. Execute o contêiner com um diretório de dados externo.
    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 dele.
    • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do UBI.
  4. Se ainda não estiver instalado, instale policycoreutils-python-utils pelo gerenciador de pacotes. Esse pacote fornece utilitários necessários para gerenciar políticas do SELinux.
  5. Para seu diretório de dados externos, defina o contexto do SELinux adequado.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    Substitua a seguinte variável:
    • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
  6. Use ausearch para saber mais sobre os requisitos de permissão adicionais.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. Crie um perfil de segurança do SELinux com base no seu contêiner do AlloyDB Omni e nas informações de permissão ausearch.
    podman inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  8. Carregue o módulo SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  9. Ative mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. Interrompa e remova o contêiner do AlloyDB Omni.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Substitua a seguinte variável:
    • CONTAINER_NAME: nome usado para o contêiner. Por exemplo, my-omni-1.
  11. Defina o modo do SELinux como enforcing.
    sudo setenforce 1
  12. Recrie o contêiner do AlloyDB Omni.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    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 dele.
    • 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 precisa 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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi9 para a imagem mais recente do 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 do 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 dele. 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 17.5.0 para a imagem mais recente do Debian ou use 17.5.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 sobre Configurar drivers de geração de registros e do Podman sobre 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 17.5.0 para a imagem mais recente do Debian ou 17.5.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 17.5.0 para a imagem mais recente do Debian ou 17.5.0-ubi para a imagem mais recente do 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.