Personaliza la instalación de AlloyDB Omni

AlloyDB Omni se implementa a través de una imagen de contenedor, lo que permite diferentes formas de personalización. En esta página, se muestran algunas personalizaciones comunes.

Activa un directorio de datos externo

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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: 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 la que se almacenan tus datos.
  • HOST_PORT: Es el puerto TCP en la máquina host al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.

Habilita los ulimits

Los parámetros ulimit especifican los límites de proceso que puede usar el contenedor de Docker o Podman. Para obtener un rendimiento óptimo, te recomendamos que establezcas 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. La prioridad más alta les brinda a los procesos una asignación mayor de CPUs disponibles. Para ajustar las prioridades del proceso, especifica --ulimit=nice=-20:-20, que quita las limitaciones del contenedor de AlloyDB Omni.

  • memlock=-1:-1: AlloyDB Omni realiza una administración automática de la memoria. La configuración de --ulimit=memlock=-1:-1 permite que la base de datos controle 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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: 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 host al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.

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, agotar el espacio en el disco. Para usar un controlador de registro diferente, puedes especificar el campo --log-driver. Por ejemplo, para acceder a 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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: 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 host al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.

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

Además, puedes configurar el registro con PostgreSQL. Para obtener más información, consulta Configura la rotación de registros de AlloyDB Omni.

Activa un volumen de memoria compartida

Si planeas usar el motor de columnas de AlloyDB con AlloyDB Omni, te recomendamos que hagas que la memoria compartida esté disponible para el 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: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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: 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 host al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.

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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • NEW_PASSWORD: Contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • SHARED_MEMORY_SIZE: Es el 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 host al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.

Te recomendamos que establezcas el tamaño de la memoria compartida en una cantidad de megabytes igual al valor de la marca google_job_scheduler.max_parallel_workers_per_job de tu base de datos, por 250. Para obtener más información sobre el motor de columnas, consulta Cómo 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 está configurada en su valor predeterminado de 2, considera agregar una marca de --shm-size=500m o superior cuando inicies el servidor de base de datos.

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

Habilita las extensiones

La lista de extensiones disponibles en AlloyDB Omni se encuentra en Extensiones de bases de datos compatibles. Aunque PostGIS y Orafce no se incluyen en AlloyDB Omni, se pueden instalar siguiendo estas instrucciones:

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