En esta página se describe cómo personalizar la instalación de AlloyDB Omni, que se implementa mediante una imagen de contenedor que admite diferentes formas de personalización. En esta página se muestran algunas personalizaciones habituales.
Habilitar e inhabilitar la telemetría de AlloyDB Omni
La telemetría de AlloyDB Omni implementa un agente de cliente ligero que solo se ejecuta en la imagen de contenedor de AlloyDB Omni. Este agente recoge periódicamente un conjunto de métricas básicas seudonimizadas y las envía a un endpoint gestionado por Google.
Como AlloyDB Omni es un producto descargable que se ofrece sin coste, esta telemetría proporciona a Google métricas esenciales de información no personal identificable (IPI) sobre los entornos genéricos de adopción e implementación de las instancias en ejecución. Estos datos nos ayudan a tomar decisiones sobre el desarrollo de productos y la priorización de la asistencia.
Entre las métricas recogidas 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 el número de CPUs, la RAM y el tiempo de actividad
Inhabilitar los informes de telemetría
Para evitar que el agente de telemetría se ejecute y envíe métricas de uso, asigna el valor off al parámetro de configuración de PostgreSQL omni_enable_telemetry. Para inhabilitar el agente de telemetría, puedes definir la marca de telemetría en el archivo postgresql.conf
o definir la marca en tiempo de ejecución con ALTER SYSTEM.
Definir 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:
- Busca el archivo
postgresql.confen el directorio de datos de tu base de datos ($PGDATA). Inhabilita la telemetría de AlloyDB Omni.
omni_enable_telemetry = off
Para aplicar el cambio, reinicia tu contenedor de AlloyDB Omni. El agente de telemetría deja de recoger y enviar métricas de uso a Google.
Definir la marca de telemetría en el tiempo de ejecución con ALTER SYSTEM
Para definir la marca de telemetría y conservar el cambio entre reinicios, sigue estos pasos:
Conéctate a tu instancia de AlloyDB Omni mediante
psql:psql -h HOST -U USER -d DATABASE
Haz las siguientes sustituciones:
HOST: 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 al que quieres conectarte, por ejemplo,postgres.DATABASE: la base de datos a la que quieres conectarte (por ejemplo,postgres).
Ejecuta el siguiente comando:
ALTER SYSTEM SET omni_enable_telemetry = 'off';
Vuelve a cargar la configuración o reinicia la instancia. En algunas configuraciones de contenedores, puede que tengas que reiniciar la instancia para asegurarte de que el cambio se aplique por completo en el trabajador en segundo plano.
SELECT pg_reload_conf();
El agente de telemetría deja de recoger y enviar métricas de uso a Google.
Habilitar los informes de telemetría
Si has inhabilitado la telemetría de AlloyDB Omni, puedes volver a habilitarla configurando la marca omni_enable_telemetry en on. Para habilitar el agente de telemetría, debes definir la marca en el archivo postgresql.conf o en el tiempo de ejecución mediante ALTER SYSTEM.
Definir la marca de telemetría en el archivo postgresql.conf
- Busca el archivo
postgresql.confen el directorio de datos de tu base de datos ($PGDATA). Define la siguiente línea:
omni_enable_telemetry = on
Para aplicar el cambio, reinicia tu contenedor de AlloyDB Omni.
Definir la marca de telemetría en el tiempo de ejecución con ALTER SYSTEM
- Conéctate a tu instancia de AlloyDB Omni mediante
psql. Ejecuta el siguiente comando:
ALTER SYSTEM SET omni_enable_telemetry = 'on';
Para aplicar el cambio, reinicia tu contenedor de AlloyDB Omni.
docker restart CONTAINER_NAME
Haz la siguiente sustitución:
CONTAINER_NAME: el nombre de tu contenedor de AlloyDB Omni. Por ejemplo,my-omni-1.
Comprobar el estado de la telemetría de AlloyDB Omni
Puede comprobar el estado del agente de telemetría de AlloyDB Omni, incluido si está habilitado o en ejecución. También puedes consultar la actividad del agente de telemetría.
Comprobar si el agente de telemetría está habilitado o inhabilitado
Para comprobar el estado del ajuste de telemetría, sigue estos pasos:
- Conéctate a tu instancia.
- Ejecuta lo siguiente:
SHOW omni_enable_telemetry;
El resultado es on o off, según si has inhabilitado o habilitado la telemetría de AlloyDB Omni.
Comprobar si el agente de telemetría se está ejecutando
Para comprobar si el agente de telemetría se está ejecutando, ejecuta el siguiente comando en el host del contenedor:
docker top CONTAINER_NAME
Haz la siguiente sustitución:
CONTAINER_NAME: 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.
Comprobar la actividad del agente de telemetría
Para comprobar la actividad del agente de telemetría, ejecuta el siguiente comando en el host del contenedor:
docker logs CONTAINER_NAME 2>&1 | grep telemetry
Haz la siguiente sustitución:
CONTAINER_NAME: el nombre de tu contenedor de AlloyDB Omni. Por ejemplo,my-omni-1.
Si el agente de telemetría está en ejecución, 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.
Montar un directorio de datos externo
De forma predeterminada, el comando de la guía de inicio rápido para instalar AlloyDB Omni almacena los datos de la base de datos en un área gestionada por Docker o Podman. Esto es práctico para empezar, pero dificulta encontrar y usar el directorio de datos. En su lugar, puedes configurar un montaje de enlace para asignar el directorio de datos a una ubicación conocida de 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
Sustituye las siguientes variables:
CONTAINER_NAME: nombre que has usado para tu contenedor. Por ejemplo,my-omni-1.NEW_PASSWORD: contraseña asignada al usuariopostgresdel nuevo contenedor después de su creación.DATA_DIR: ruta del directorio de host en el que se almacenan tus datos.HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto5432el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica5432.IMAGE_TAG: usa16.9.0para la imagen de Debian más reciente o16.9.0-ubipara la imagen de UBI más reciente.
Habilitar ulimits
Los parámetros de ulimit especifican los límites de los procesos que puede usar el contenedor de Docker o Podman. Para obtener un rendimiento óptimo, te recomendamos que definas 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 una prioridad más alta. Cuanto mayor sea la prioridad, mayor será la asignación de CPUs disponibles para los procesos. Para ajustar las prioridades de los procesos, especifica--ulimit=nice=-20:-20, que elimina las limitaciones del contenedor de AlloyDB Omni.memlock=-1:-1: AlloyDB Omni realiza una gestión automática de la memoria. Si se define--ulimit=memlock=-1:-1, la base de datos puede controlar mejor cómo se intercambian las páginas de memoria, lo que puede mejorar el 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
Sustituye las siguientes variables:
CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo,my-omni-1.NEW_PASSWORD: contraseña asignada al usuariopostgresdel nuevo contenedor después de su creación.HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto5432el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica5432.IMAGE_TAG: usaAlloyDB Omnipara la imagen de Debian más reciente oAlloyDB Omni-ubipara la imagen de UBI más reciente.
Especificar un controlador de registro
De forma predeterminada, Docker y Podman no realizan rotaciones de registros. Esto puede ocupar mucho espacio en disco y, con el tiempo, provocar que se agote. Para usar otro controlador de registro, puedes especificar el campo --log-driver. Por ejemplo, para registrarte en
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
Sustituye las siguientes variables:
CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo,my-omni-1.NEW_PASSWORD: contraseña asignada al usuariopostgresdel nuevo contenedor después de su creación.HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto5432el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica5432.IMAGE_TAG: usa16.9.0para obtener la imagen de Debian más reciente o16.9.0-ubipara obtener la imagen de UBI más reciente.
Para obtener más información sobre los controladores de registro, consulta la documentación de Docker sobre cómo configurar controladores de registro y la de Podman sobre podman-run.
También puedes configurar el registro mediante PostgreSQL. Para obtener más información, consulta Configurar la rotación de registros de AlloyDB Omni.
Montar un volumen de memoria compartida
Si tienes previsto 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 varía en función del sistema operativo del host, como se muestra en los siguientes ejemplos.
Linux
Para que el contenedor pueda acceder a la memoria compartida, monta /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
Sustituye las siguientes variables:
CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo,my-omni-1.NEW_PASSWORD: contraseña asignada al usuariopostgresdel nuevo contenedor después de su creación.HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto5432el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica5432.IMAGE_TAG: usa16.9.0para obtener la imagen de Debian más reciente o16.9.0-ubipara obtener la imagen de UBI más reciente.
macOS
Para que el contenedor pueda acceder a la memoria compartida, 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
Sustituye las siguientes variables:
CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo,my-omni-1.NEW_PASSWORD: contraseña asignada al usuariopostgresdel nuevo contenedor después de su creación.SHARED_MEMORY_SIZE: tamaño que se va a definir para/dev/shmen el contenedor, con el formato descrito en Ejecutar contenedores. Por ejemplo, para especificar un gigabyte, usa el valor1g.HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto5432el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica5432.IMAGE_TAG: usa16.9.0para la imagen de Debian más reciente o16.9.0-ubipara la imagen de UBI más reciente.
Te recomendamos que asignes al tamaño de la memoria compartida un número de megabytes igual al 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 Configurar el motor de columnas en AlloyDB Omni.
Por ejemplo, si la marca de base de datos google_job_scheduler.max_parallel_workers_per_job tiene el valor predeterminado 2, considera la posibilidad de añadir una marca con el valor --shm-size=500m o superior al iniciar el servidor de la base de datos.
Para obtener más información sobre la marca --shm-size, consulta Ejecutar contenedores.
Habilitar extensiones
La lista de extensiones disponibles en AlloyDB Omni se puede consultar en Extensiones de base de datos admitidas. Aunque PostGIS y Orafce no se incluyen en AlloyDB Omni, se pueden instalar siguiendo las instrucciones:
Las extensiones instaladas se habilitan mediante instrucciones estándar de PostgreSQL CREATE EXTENSION
como se explica en el artículo sobre cómo habilitar una extensión.