Personalizar la instalación de AlloyDB Omni

Selecciona una versión de la documentación:

AlloyDB Omni se implementa mediante una imagen de contenedor, lo que permite diferentes formas de personalización. En esta página se muestran algunas personalizaciones habituales.

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 y Podman. Esto es conveniente para empezar, pero dificulta la búsqueda y el uso del 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:latest

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:latest

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:latest

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:latest

Sustituye las siguientes variables:

  • CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: contraseña asignada al usuario postgres del 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 puerto 5432 el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.

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 a 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:latest

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:latest

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:latest

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:latest

Sustituye las siguientes variables:

  • CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: contraseña asignada al usuario postgres del nuevo contenedor después de su creación.
  • HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto 5432 el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.

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, 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:latest

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest

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:latest

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:latest

Sustituye las siguientes variables:

  • CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: contraseña asignada al usuario postgres del nuevo contenedor después de su creación.
  • HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto 5432 el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.

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:latest

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:latest

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:latest

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:latest

Sustituye las siguientes variables:

  • CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: contraseña asignada al usuario postgres del nuevo contenedor después de su creación.
  • HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto 5432 el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.

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:latest

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:latest

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:latest

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:latest

Sustituye las siguientes variables:

  • CONTAINER_NAME: nombre que has usado para el contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: contraseña asignada al usuario postgres del nuevo contenedor después de su creación.
  • SHARED_MEMORY_SIZE: tamaño que se va a definir para /dev/shm en el contenedor, con el formato descrito en Ejecutar contenedores. Por ejemplo, para especificar un gigabyte, usa el valor 1g.
  • HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto 5432 el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.

Te recomendamos que definas el tamaño de la memoria compartida en 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.