Personaliza la instalación de AlloyDB Omni

Selecciona una versión de la documentación:

En esta página, se describe cómo personalizar la instalación de AlloyDB Omni, que se implementa a través de una imagen de contenedor que admite diferentes formas de personalización. En esta página, se muestran algunas personalizaciones comunes.

Cómo habilitar e inhabilitar la telemetría de AlloyDB Omni

La telemetría de AlloyDB Omni implementa un agente cliente ligero que se ejecuta solo en la imagen de contenedor de AlloyDB Omni. Este agente recopila periódicamente un conjunto de métricas básicas seudónimas y las envía a un extremo administrado por Google.

Dado que AlloyDB Omni es un producto descargable que se ofrece sin cargo, esta telemetría proporciona a Google métricas esenciales de información no identificable personalmente (no PII) sobre los entornos genéricos de adopción y de implementación de las instancias en ejecución. Estos datos ayudan a fundamentar el desarrollo de productos y respaldar la priorización.

Entre las métricas recopiladas, se incluyen las siguientes:

  • ID de instalación único (UUID seudonimizado)
  • Versión de AlloyDB Omni y versión principal de PostgreSQL
  • Información del sistema host, como la cantidad de CPU, la RAM y el tiempo de actividad

Inhabilita los informes de telemetría

Para evitar que el agente de telemetría se ejecute y genere informes de métricas de uso, establece el parámetro de configuración de PostgreSQL omni_enable_telemetry en off. Puedes inhabilitar el agente de telemetría configurando la marca de telemetría en el archivo postgresql.conf o configurando la marca en el entorno de ejecución con ALTER SYSTEM.

Establece la marca de telemetría en el archivo postgresql.conf

Para modificar el archivo de configuración de PostgreSQL en el directorio de datos persistentes de tu contenedor, sigue estos pasos:

  1. Ubica el archivo postgresql.conf en el directorio de datos de tu base de datos ($PGDATA).
  2. Inhabilita la telemetría de AlloyDB Omni.

    omni_enable_telemetry = off
    
  3. Para aplicar el cambio, reinicia tu contenedor de AlloyDB Omni. El agente de telemetría deja de recopilar y enviar métricas de uso a Google.

Cómo establecer la marca de telemetría en el tiempo de ejecución con ALTER SYSTEM

Para establecer la marca de telemetría y conservar el cambio en los reinicios, sigue estos pasos:

  1. Conéctate a tu instancia de AlloyDB Omni con psql:

    psql -h HOST -U USER -d DATABASE
    

    Realiza los siguientes reemplazos:

    • HOST: Es el nombre de host o la dirección IP de tu instancia de AlloyDB Omni, por ejemplo, 127.0.0.1.
    • USER: el usuario de la base de datos con el que deseas conectarte, por ejemplo, postgres.
    • DATABASE: Es la base de datos a la que deseas conectarte, por ejemplo, postgres.
  2. Ejecuta el comando siguiente:

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. Vuelve a cargar la configuración o reinicia la instancia. En algunos casos, es posible que debas reiniciar la instancia para asegurarte de que el trabajador en segundo plano capte el cambio por completo.

    SELECT pg_reload_conf();
    

    El agente de telemetría deja de recopilar y enviar métricas de uso a Google.

Habilita los informes de telemetría

Si anteriormente inhabilitaste la telemetría de AlloyDB Omni, puedes volver a habilitarla configurando la marca omni_enable_telemetry como on. Para habilitar el agente de telemetría, configura la marca en el archivo postgresql.conf o en el tiempo de ejecución con ALTER SYSTEM.

Cómo establecer la marca de telemetría en el archivo postgresql.conf

  1. Ubica el archivo postgresql.conf en el directorio de datos de tu base de datos ($PGDATA).
  2. Establece la siguiente línea:

    omni_enable_telemetry = on
    
  3. Para aplicar el cambio, reinicia el contenedor de AlloyDB Omni.

Configura la marca de telemetría en el entorno de ejecución con ALTER SYSTEM

  1. Conéctate a tu instancia de AlloyDB Omni con psql.
  2. Ejecuta el comando siguiente:

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. Para aplicar el cambio, reinicia el contenedor de AlloyDB Omni.

    docker restart CONTAINER_NAME
    

    Realiza el siguiente reemplazo:

    • CONTAINER_NAME: Es el nombre de tu contenedor de AlloyDB Omni, por ejemplo, my-omni-1.

Verifica el estado de la telemetría de AlloyDB Omni

Puedes verificar el estado del agente de telemetría de AlloyDB Omni, incluido si está habilitado o en ejecución. También puedes verificar la actividad del agente de telemetría.

Verifica si el agente de telemetría está habilitado o inhabilitado

Para verificar el estado del parámetro de configuración de telemetría, sigue estos pasos:

  1. Conectarte a la instancia
  2. Ejecuta lo siguiente:
SHOW omni_enable_telemetry;

El resultado muestra on o off, según si inhabilitaste o habilitaste la telemetría de AlloyDB Omni.

Verifica si el agente de telemetría está en ejecución

Para verificar si el agente de telemetría se está ejecutando, ejecuta el siguiente comando en el host del contenedor:

docker top CONTAINER_NAME

Realiza el siguiente reemplazo:

  • CONTAINER_NAME: Es el nombre de tu contenedor de AlloyDB Omni, por ejemplo, my-omni-1.

Si la telemetría está habilitada y en ejecución, el resultado contiene una línea con el texto postgres: omni telemetry worker.

Verifica la actividad del agente de telemetría

Para verificar la actividad del agente de telemetría, ejecuta el siguiente comando en el host del contenedor:

docker logs CONTAINER_NAME 2>&1 | grep telemetry

Realiza el siguiente reemplazo:

  • CONTAINER_NAME: Es el nombre de tu contenedor de AlloyDB Omni, por ejemplo, my-omni-1.

Si el agente de telemetría se está ejecutando, los registros contienen mensajes similares a los siguientes:

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.

Cómo activar un directorio de datos externo

De forma predeterminada, el comando en Guía de inicio rápido: Instala AlloyDB Omni almacena los datos de la base de datos en un área administrada por Docker o Podman. Esto es conveniente para comenzar, pero dificulta encontrar y usar el directorio de datos. En su lugar, puedes configurar una activación de vinculación para asignar el directorio de datos a una ubicación conocida en tu 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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
  • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
  • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
  • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.

Activa un directorio de datos externo cuando uses SELinux

Si SELinux está habilitado y el modo se establece en enforcing, los intentos de activar un directorio de datos externo generarán errores de permiso. Para activar un directorio de datos externo cuando usas SELinux, completa las siguientes instrucciones:

Docker

  1. Si tu contenedor de AlloyDB Omni se está ejecutando, detenlo.
    docker stop CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  2. Establece el modo de SELinux en permissive. Esto te permite ejecutar tu contenedor y, además, identificar detalles sobre qué acceso se requiere para activar un directorio de datos externo.
    setenforce 0
  3. Ejecuta tu contenedor con un directorio de datos 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
    
    Reemplaza las siguientes variables:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
    • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
    • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.
  4. Si aún no está instalado, instala policycoreutils-python-utils a través del administrador de paquetes. Este paquete proporciona las utilidades necesarias para administrar las políticas de SELinux.
  5. Para tu directorio de datos externo, establece el contexto de SELinux adecuado.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    Reemplaza la siguiente variable:
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
  6. Usa ausearch para obtener información sobre los requisitos de permisos adicionales.
    ausearch -c 'postgres' --raw > postgres.avc
  7. Crea un perfil de seguridad de SELinux basado en tu contenedor de AlloyDB Omni y la información de permisos de ausearch.
    docker inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  8. Carga el módulo de SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  9. Habilita mmap.
    setsebool -P domain_can_mmap_files 1
  10. Detén y quita tu contenedor de AlloyDB Omni.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  11. Establece el modo de SELinux en enforcing.
    setenforce 1
  12. Vuelve a crear tu contenedor de 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
    
    Reemplaza las siguientes variables:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
    • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
    • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.

Docker

  1. Si tu contenedor de AlloyDB Omni se está ejecutando, detenlo.
    docker stop CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  2. Establece el modo de SELinux en permissive. Esto te permite ejecutar tu contenedor y, además, identificar detalles sobre qué acceso se requiere para activar un directorio de datos externo.
    sudo setenforce 0
  3. Ejecuta tu contenedor con un directorio de datos 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
    
    Reemplaza las siguientes variables:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
    • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
    • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.
  4. Si aún no está instalado, instala policycoreutils-python-utils a través del administrador de paquetes. Este paquete proporciona las utilidades necesarias para administrar las políticas de SELinux.
  5. Si tu directorio de datos externo no está dentro de tu directorio principal, establece el contexto de SELinux adecuado.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    Reemplaza la siguiente variable:
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
  6. Usa ausearch para obtener información sobre los requisitos de permisos adicionales.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. Crea un perfil de seguridad de SELinux basado en la información de permisos de tu contenedor de AlloyDB Omni y ausearch.
    docker inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  8. Carga el módulo de SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  9. Habilita mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. Detén y quita tu contenedor de AlloyDB Omni.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  11. Establece el modo de SELinux en enforcing.
    sudo setenforce 1
  12. Vuelve a crear tu contenedor de 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
    
    Reemplaza las siguientes variables:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
    • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
    • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.

Podman

  1. Si tu contenedor de AlloyDB Omni se está ejecutando, deténlo.
    podman stop CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  2. Establece el modo de SELinux en permissive. Esto te permite ejecutar tu contenedor y, además, identificar detalles sobre qué acceso se requiere para activar un directorio de datos externo.
    setenforce 0
  3. Ejecuta tu contenedor con un directorio de datos 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
    
    Reemplaza las siguientes variables:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
    • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
    • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.
  4. Si aún no está instalado, instala policycoreutils-python-utils a través del administrador de paquetes. Este paquete proporciona las utilidades necesarias para administrar las políticas de SELinux.
  5. Para tu directorio de datos externo, establece el contexto de SELinux adecuado.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    Reemplaza la siguiente variable:
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
  6. Usa ausearch para obtener información sobre los requisitos de permisos adicionales.
    ausearch -c 'postgres' --raw > postgres.avc
  7. Crea un perfil de seguridad de SELinux basado en la información de permisos de tu contenedor de AlloyDB Omni y ausearch.
    podman inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  8. Carga el módulo de SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  9. Habilita mmap.
    setsebool -P domain_can_mmap_files 1
  10. Detén y quita tu contenedor de AlloyDB Omni.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  11. Establece el modo de SELinux en enforcing.
    setenforce 1
  12. Vuelve a crear tu contenedor de 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
    
    Reemplaza las siguientes variables:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
    • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
    • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.

Podman

  1. Si tu contenedor de AlloyDB Omni se está ejecutando, deténlo.
    podman stop CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  2. Establece el modo de SELinux en permissive. Esto te permite ejecutar tu contenedor y, además, identificar detalles sobre qué acceso se requiere para activar un directorio de datos externo.
    sudo setenforce 0
  3. Ejecuta tu contenedor con un directorio de datos 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
    
    Reemplaza las siguientes variables:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
    • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
    • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.
  4. Si aún no está instalado, instala policycoreutils-python-utils a través del administrador de paquetes. Este paquete proporciona las utilidades necesarias para administrar las políticas de SELinux.
  5. Para tu directorio de datos externo, establece el contexto de SELinux adecuado.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    Reemplaza la siguiente variable:
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
  6. Usa ausearch para obtener información sobre los requisitos de permisos adicionales.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. Crea un perfil de seguridad de SELinux basado en tu contenedor de AlloyDB Omni y la información de permisos de ausearch.
    podman inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  8. Carga el módulo de SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  9. Habilita mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. Detén y quita tu contenedor de AlloyDB Omni.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Reemplaza la siguiente variable:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1
  11. Establece el modo de SELinux en enforcing.
    sudo setenforce 1
  12. Vuelve a crear tu contenedor de 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
    
    Reemplaza las siguientes variables:
    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo: my-omni-1
    • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
    • DATA_DIR: Es la ruta de acceso al directorio del host en el que se almacenan tus datos.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
    • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi9 para la imagen de UBI más reciente.

Habilita ulimits

Los parámetros de ulimit especifican los límites de procesos que pueden usar los contenedores de Docker o Podman. Para obtener un rendimiento óptimo, te recomendamos que configures los siguientes ulimits:

  • nice=-20:-20: AlloyDB Omni ajusta las prioridades de los procesos para permitir que los procesos críticos de PostgreSQL se ejecuten con mayor prioridad. La prioridad más alta les otorga a los procesos una mayor asignación de las CPU disponibles. Para ajustar las prioridades de los procesos, especifica --ulimit=nice=-20:-20, lo que quita las limitaciones del contenedor de AlloyDB Omni.

  • memlock=-1:-1: AlloyDB Omni realiza una administración automática de la memoria. El parámetro de configuración --ulimit=memlock=-1:-1 permite que la base de datos controle mejor cómo se intercambian las páginas de memoria, lo que puede generar un mejor rendimiento.

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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • HOST_PORT: Es el puerto TCP en la máquina anfitrión al que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.
  • IMAGE_TAG: Usa AlloyDB Omni para la imagen de Debian más reciente o AlloyDB Omni-ubi para la imagen de UBI más reciente.

Especifica un controlador de registro

De forma predeterminada, Docker y Podman no realizan rotaciones de registros. Esto puede ocupar mucho espacio en el disco y, con el tiempo, provocar que se agote. Para usar otro controlador de registro, puedes especificar el campo --log-driver. Por ejemplo, para registrar en journald, haz lo siguiente:

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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.
  • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o usa 16.9.0-ubi para la imagen de UBI más reciente.

Para obtener más información sobre los controladores de registro, consulta Configura controladores de registro de Docker y la documentación de podman-run de Podman.

Cómo activar un volumen de memoria compartida

Si planeas usar el motor de columnas de AlloyDB con AlloyDB Omni, te recomendamos que pongas la memoria compartida a disposición del contenedor de AlloyDB Omni. El método para hacerlo difiere según el sistema operativo host, como se muestra en los siguientes ejemplos.

Linux

Para que la memoria compartida esté disponible para el contenedor, activa /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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • HOST_PORT: Es el puerto TCP en la máquina anfitrión en el que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.
  • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi para la imagen de UBI más reciente.

macOS

Para que la memoria compartida esté disponible para el contenedor, incluye la marca --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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • SHARED_MEMORY_SIZE: Tamaño que se establecerá para /dev/shm en el contenedor, en el formato que se describe en Cómo ejecutar contenedores. Por ejemplo, para especificar un gigabyte, usa el valor 1g.
  • HOST_PORT: Es el puerto TCP en la máquina anfitrión al que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.
  • IMAGE_TAG: Usa 16.9.0 para la imagen de Debian más reciente o 16.9.0-ubi para la imagen de UBI más reciente.

Te recomendamos que establezcas el tamaño de la memoria compartida en una cantidad de megabytes igual a, al menos, el valor de la marca google_job_scheduler.max_parallel_workers_per_job de tu base de datos, multiplicado por 250. Para obtener más información sobre el motor de columnas, consulta Configura el motor de columnas en AlloyDB Omni.

Por ejemplo, si la marca de base de datos google_job_scheduler.max_parallel_workers_per_job está establecida en su valor predeterminado de 2, considera agregar una marca de --shm-size=500m o superior cuando inicies el servidor de la base de datos.

Para obtener más información sobre la marca --shm-size, consulta Ejecuta contenedores.

Habilita las extensiones

La lista de extensiones disponibles en AlloyDB Omni se encuentra en Extensiones de bases de datos compatibles. Si bien PostGIS y Orafce no se incluyen en AlloyDB Omni, ambos se pueden instalar siguiendo las instrucciones que se indican a continuación:

Las extensiones instaladas se habilitan con las declaraciones CREATE EXTENSION estándar de PostgreSQL, como se detalla en Habilita una extensión.