Personnaliser votre installation d'AlloyDB Omni

AlloyDB Omni est déployé via une image de conteneur, ce qui permet différentes formes de personnalisation. Cette page présente quelques personnalisations courantes.

Installer un répertoire de données externe

Par défaut, la commande de la section Démarrage rapide: Installer AlloyDB Omni stocke les données de la base de données dans une zone gérée par Docker et Podman. Cela est pratique pour commencer, mais rend difficile la recherche et l'utilisation du répertoire de données. Vous pouvez plutôt configurer un montage de liaison pour mapper le répertoire de données à un emplacement connu sur votre disque.

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

Remplacez les variables suivantes :

  • CONTAINER_NAME: nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.
  • NEW_PASSWORD: mot de passe attribué à l'utilisateur postgres du nouveau conteneur après sa création.
  • DATA_DIR: chemin d'accès au répertoire hôte dans lequel vos données sont stockées.
  • HOST_PORT: port TCP sur la machine hôte auquel le conteneur doit publier son propre port 5432. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez 5432.

Activer les limites d'utilisateur

Les paramètres ulimit spécifient les limites de processus que le conteneur Docker ou Podman peut utiliser. Pour des performances optimales, nous vous recommandons de définir les limites d'utilisation suivantes:

  • nice=-20:-20: AlloyDB Omni ajuste les priorités de processus pour permettre aux processus PostgreSQL critiques de s'exécuter avec une priorité plus élevée. Une priorité plus élevée permet aux processus d'allouer davantage de processeurs disponibles. Pour ajuster les priorités de processus, spécifiez --ulimit=nice=-20:-20, ce qui supprime les limites du conteneur AlloyDB Omni.

  • memlock=-1:-1: AlloyDB Omni effectue une gestion automatique de la mémoire. Le paramètre --ulimit=memlock=-1:-1 permet à la base de données de mieux contrôler la façon dont les pages de mémoire sont échangées, ce qui peut améliorer les performances.

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

Remplacez les variables suivantes :

  • CONTAINER_NAME: nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.
  • NEW_PASSWORD: mot de passe attribué à l'utilisateur postgres du nouveau conteneur après sa création.
  • HOST_PORT: port TCP sur la machine hôte auquel le conteneur doit publier son propre port 5432. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez 5432.

Spécifier un pilote de journalisation

Par défaut, Docker et Podman n'effectuent pas de rotation des journaux. Cela peut utiliser beaucoup d'espace disque et finir par l'épuiser. Pour utiliser un autre pilote de journalisation, vous pouvez spécifier le champ --log-driver. Par exemple, pour vous connecter à journald:

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

Remplacez les variables suivantes :

  • CONTAINER_NAME: nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.
  • NEW_PASSWORD: mot de passe attribué à l'utilisateur postgres du nouveau conteneur après sa création.
  • HOST_PORT: port TCP sur la machine hôte auquel le conteneur doit publier son propre port 5432. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez 5432.

Pour en savoir plus sur les pilotes de journalisation, consultez la documentation Configurer les pilotes de journalisation de Docker et la documentation podman-run de Podman.

Vous pouvez également configurer la journalisation à l'aide de PostgreSQL. Pour en savoir plus, consultez la section Configurer la rotation des journaux AlloyDB Omni.

Monter un volume de mémoire partagée

Si vous prévoyez d'utiliser le moteur de données en colonnes AlloyDB avec AlloyDB Omni, nous vous recommandons de mettre la mémoire partagée à la disposition du conteneur AlloyDB Omni. La méthode à suivre diffère selon le système d'exploitation hôte, comme illustré dans les exemples suivants.

Linux

Pour mettre la mémoire partagée à la disposition du conteneur, installez /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

Remplacez les variables suivantes :

  • CONTAINER_NAME: nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.
  • NEW_PASSWORD: mot de passe attribué à l'utilisateur postgres du nouveau conteneur après sa création.
  • HOST_PORT: port TCP sur la machine hôte auquel le conteneur doit publier son propre port 5432. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez 5432.

macOS

Pour mettre la mémoire partagée à la disposition du conteneur, incluez l'indicateur --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

Remplacez les variables suivantes :

  • CONTAINER_NAME: nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.
  • NEW_PASSWORD: mot de passe attribué à l'utilisateur postgres du nouveau conteneur après sa création.
  • SHARED_MEMORY_SIZE: taille à définir pour /dev/shm sur le conteneur, au format décrit dans la section Exécuter des conteneurs. Par exemple, pour spécifier un gigaoctet, utilisez la valeur 1g.
  • HOST_PORT: port TCP sur la machine hôte auquel le conteneur doit publier son propre port 5432. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez 5432.

Nous vous recommandons de définir la taille de la mémoire partagée sur un nombre de mégaoctets au moins égal à la valeur de l'indicateur google_job_scheduler.max_parallel_workers_per_job de votre base de données, multipliée par 250. Pour en savoir plus sur le moteur de données en colonnes, consultez la section Configurer le moteur de données en colonnes dans AlloyDB Omni.

Par exemple, si l'indicateur de base de données google_job_scheduler.max_parallel_workers_per_job est défini sur sa valeur par défaut, 2, envisagez d'ajouter un indicateur de --shm-size=500m ou supérieur lorsque vous démarrez votre serveur de base de données.

Pour en savoir plus sur l'indicateur --shm-size, consultez la section Exécuter des conteneurs.

Activer les extensions

La liste des extensions disponibles dans AlloyDB Omni est disponible dans la section Extensions de base de données compatibles. Bien que PostGIS et Orafce ne soient pas inclus avec AlloyDB Omni, vous pouvez les installer en suivant ces instructions:

Les extensions installées sont activées à l'aide d'instructions CREATE EXTENSION PostgreSQL standards, comme indiqué dans la section Activer une extension.