Cette page explique comment personnaliser votre installation AlloyDB Omni, qui est déployée à l'aide d'une image de conteneur compatible avec différentes formes de personnalisation. Cette page présente quelques personnalisations courantes.
Activer et désactiver la télémétrie AlloyDB Omni
La télémétrie AlloyDB Omni implémente un agent client léger qui ne s'exécute que dans l'image de conteneur AlloyDB Omni. Cet agent collecte régulièrement un ensemble de métriques de base pseudonymisées et les envoie à un point de terminaison géré par Google.
Étant donné qu'AlloyDB Omni est un produit téléchargeable proposé sans frais, cette télémétrie fournit à Google des métriques essentielles non personnellement identifiables (non-PII) concernant les environnements d'adoption et de déploiement génériques des instances en cours d'exécution. Ces données nous aident à développer nos produits et à prioriser l'assistance.
Les métriques collectées incluent les éléments suivants :
- ID d'installation unique (UUID pseudonymisé)
- Version d'AlloyDB Omni et version majeure de PostgreSQL
- Informations sur le système hôte, comme le nombre de processeurs, la RAM et la disponibilité
Désactiver les rapports de télémétrie
Pour empêcher l'agent de télémétrie de s'exécuter et de générer des rapports sur les métriques d'utilisation, définissez le paramètre de configuration PostgreSQL omni_enable_telemetry sur off. Vous pouvez désactiver l'agent de télémétrie en définissant l'indicateur de télémétrie dans le fichier postgresql.conf ou en définissant l'indicateur au moment de l'exécution à l'aide de ALTER SYSTEM.
Définir l'indicateur de télémétrie dans le fichier postgresql.conf
Pour modifier le fichier de configuration PostgreSQL dans le répertoire de données persistantes de votre conteneur, procédez comme suit :
- Recherchez le fichier
postgresql.confdans le répertoire de données de votre base de données ($PGDATA). Désactivez la télémétrie AlloyDB Omni.
omni_enable_telemetry = off
Pour appliquer la modification, redémarrez votre conteneur AlloyDB Omni. L'agent de télémétrie cesse de collecter et d'envoyer des métriques d'utilisation à Google.
Définir l'indicateur de télémétrie au moment de l'exécution à l'aide de ALTER SYSTEM
Pour définir l'indicateur de télémétrie et conserver la modification après les redémarrages, procédez comme suit :
Connectez-vous à votre instance AlloyDB Omni à l'aide de
psql:psql -h HOST -U USER -d DATABASE
Effectuez les remplacements suivants :
HOST: nom d'hôte ou adresse IP de votre instance AlloyDB Omni (par exemple,127.0.0.1).USER: utilisateur de la base de données auquel vous souhaitez vous connecter, par exemplepostgres.DATABASE: base de données à laquelle vous souhaitez vous connecter, par exemplepostgres.
Exécutez la commande suivante :
ALTER SYSTEM SET omni_enable_telemetry = 'off';
Rechargez la configuration ou redémarrez l'instance. Dans certaines configurations de conteneur, vous devrez peut-être redémarrer votre instance pour vous assurer que le nœud de calcul en arrière-plan prend bien en compte la modification.
SELECT pg_reload_conf();
L'agent de télémétrie cesse de collecter et d'envoyer des métriques d'utilisation à Google.
Activer les rapports de télémétrie
Si vous avez précédemment désactivé la télémétrie AlloyDB Omni, vous pouvez la réactiver en définissant le flag omni_enable_telemetry sur on. Vous pouvez activer l'agent de télémétrie en définissant l'indicateur dans le fichier postgresql.conf ou en définissant l'indicateur au moment de l'exécution à l'aide de ALTER SYSTEM.
Définir l'indicateur de télémétrie dans le fichier postgresql.conf
- Recherchez le fichier
postgresql.confdans le répertoire de données de votre base de données ($PGDATA). Définissez la ligne suivante :
omni_enable_telemetry = on
Pour appliquer la modification, redémarrez votre conteneur AlloyDB Omni.
Définir l'indicateur de télémétrie au moment de l'exécution à l'aide de ALTER SYSTEM
- Connectez-vous à votre instance AlloyDB Omni à l'aide de
psql. Exécutez la commande suivante :
ALTER SYSTEM SET omni_enable_telemetry = 'on';
Pour appliquer la modification, redémarrez votre conteneur AlloyDB Omni.
docker restart CONTAINER_NAME
Effectuez le remplacement suivant :
CONTAINER_NAME: nom de votre conteneur AlloyDB Omni (par exemple,my-omni-1).
Vérifier l'état de la télémétrie AlloyDB Omni
Vous pouvez vérifier l'état de l'agent de télémétrie AlloyDB Omni, y compris s'il est activé ou en cours d'exécution. Vous pouvez également vérifier l'activité de l'agent de télémétrie.
Vérifier si l'agent de télémétrie est activé ou désactivé
Pour vérifier l'état du paramètre de télémétrie, procédez comme suit :
- Connectez-vous à l'instance.
- Exécutez la commande suivante :
SHOW omni_enable_telemetry;
Le résultat renvoie on ou off, selon que vous avez désactivé ou activé la télémétrie AlloyDB Omni.
Vérifier si l'agent de télémétrie est en cours d'exécution
Pour vérifier si l'agent de télémétrie est en cours d'exécution, exécutez la commande suivante dans l'hôte du conteneur :
docker top CONTAINER_NAME
Effectuez le remplacement suivant :
CONTAINER_NAME: nom de votre conteneur AlloyDB Omni (par exemple,my-omni-1).
Si la télémétrie est activée et en cours d'exécution, le résultat contient une ligne avec le texte postgres: omni telemetry worker.
Vérifier l'activité de l'agent de télémétrie
Pour vérifier l'activité de l'agent de télémétrie, exécutez la commande suivante dans l'hôte du conteneur :
docker logs CONTAINER_NAME 2>&1 | grep telemetry
Effectuez le remplacement suivant :
CONTAINER_NAME: nom de votre conteneur AlloyDB Omni (par exemple,my-omni-1).
Si l'agent de télémétrie est en cours d'exécution, les journaux contiennent des messages semblables à ceux-ci :
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.
Installer un répertoire de données externe
Par défaut, la commande de Démarrage rapide : installer AlloyDB Omni stocke les données de la base de données dans une zone gérée par Docker ou Podman. Cette méthode est pratique pour commencer, mais elle rend difficile la recherche et l'utilisation du répertoire de données. Au lieu de cela, vous pouvez 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: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
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'utilisateurpostgresdu 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 sur lequel le conteneur doit publier son propre port5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez5432.IMAGE_TAG: utilisez17.5.0pour la dernière image Debian ou17.5.0-ubipour la dernière image UBI.
Activer les ulimits
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 ulimits suivants :
nice=-20:-20: AlloyDB Omni ajuste les priorités des processus pour permettre aux processus PostgreSQL critiques de s'exécuter avec une priorité plus élevée. La priorité plus élevée accorde aux processus une plus grande allocation de processeurs disponibles. Pour ajuster les priorités des processus, spécifiez--ulimit=nice=-20:-20, ce qui supprime les limites pour le conteneur AlloyDB Omni.memlock=-1:-1: AlloyDB Omni effectue une gestion automatique de la mémoire. Le paramètre--ulimit=memlock=-1:-1permet à 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: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
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'utilisateurpostgresdu nouveau conteneur après sa création.HOST_PORT: port TCP sur la machine hôte sur lequel le conteneur doit publier son propre port5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez5432.IMAGE_TAG: utilisezAlloyDB Omnipour la dernière image Debian ouAlloyDB Omni-ubipour la dernière image UBI.
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 consigner des informations dans 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
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'utilisateurpostgresdu nouveau conteneur après sa création.HOST_PORT: port TCP sur la machine hôte sur lequel le conteneur doit publier son propre port5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez5432.IMAGE_TAG: utilisez17.5.0pour la dernière image Debian ou17.5.0-ubipour la dernière image UBI.
Pour en savoir plus sur les pilotes de journalisation, consultez la documentation de Docker Configurer les pilotes de journalisation et de Podman podman-run.
Vous pouvez également configurer la journalisation à l'aide de PostgreSQL. Pour en savoir plus, consultez Configurer la rotation des journaux AlloyDB Omni.
Installer 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 de la mémoire partagée à la disposition du conteneur AlloyDB Omni. La méthode pour ce faire diffère selon votre système d'exploitation hôte, comme illustré dans les exemples suivants.
Linux
Pour rendre la mémoire partagée disponible pour le 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: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
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'utilisateurpostgresdu nouveau conteneur après sa création.HOST_PORT: port TCP sur la machine hôte sur lequel le conteneur doit publier son propre port5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez5432.IMAGE_TAG: utilisez17.5.0pour la dernière image Debian ou17.5.0-ubipour la dernière image UBI.
macOS
Pour rendre la mémoire partagée disponible pour le conteneur, incluez l'option --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
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'utilisateurpostgresdu nouveau conteneur après sa création.SHARED_MEMORY_SIZE: taille à définir pour/dev/shmsur le conteneur, au format décrit dans Exécuter des conteneurs. Par exemple, pour spécifier un gigaoctet, utilisez la valeur1g.HOST_PORT: port TCP sur la machine hôte sur lequel le conteneur doit publier son propre port5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez5432.IMAGE_TAG: utilisez17.5.0pour la dernière image Debian ou17.5.0-ubipour la dernière image UBI.
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'option 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 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 de 2, envisagez d'ajouter un indicateur de --shm-size=500m ou plus lorsque vous démarrez votre serveur de base de données.
Pour en savoir plus sur l'indicateur --shm-size, consultez Exécuter des conteneurs.
Activer les extensions
La liste des extensions disponibles dans AlloyDB Omni est disponible dans Extensions de base de données compatibles. Bien que PostGIS et Orafce ne soient pas inclus dans AlloyDB Omni, vous pouvez les installer en suivant les instructions suivantes :
Les extensions installées sont activées à l'aide d'instructions CREATE EXTENSION PostgreSQL standards, comme indiqué dans Activer une extension.