AlloyDB Omni-Installation anpassen

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie Ihre AlloyDB Omni-Installation anpassen, die über ein Container-Image bereitgestellt wird, das verschiedene Formen der Anpassung unterstützt. Auf dieser Seite finden Sie einige häufige Anpassungen.

AlloyDB Omni-Telemetrie aktivieren und deaktivieren

Für die AlloyDB Omni-Telemetrie wird ein einfacher Client-Agent verwendet, der nur im AlloyDB Omni-Container-Image ausgeführt wird. Dieser Agent erfasst regelmäßig eine Reihe grundlegender, pseudonymisierter Messwerte und sendet sie an einen von Google verwalteten Endpunkt.

Da AlloyDB Omni ein kostenloses, herunterladbares Produkt ist, liefert diese Telemetrie Google wichtige, nicht personenidentifizierbare Informationen (non-PII) zu den allgemeinen Umgebungen für die Einführung und Bereitstellung von laufenden Instanzen. Diese Daten helfen uns, die Produktentwicklung und die Priorisierung des Supports zu steuern.

Zu den erfassten Messwerten gehören:

  • Eindeutige Installations-ID (pseudonymisierte UUID)
  • AlloyDB Omni-Version und PostgreSQL-Hauptversion
  • Informationen zum Hostsystem wie Anzahl der CPUs, RAM und Betriebszeit

Berichte mit Telemetriedaten deaktivieren

Damit der Telemetrie-Agent nicht ausgeführt wird und keine Nutzungsmesswerte erfasst werden, setzen Sie den PostgreSQL-Konfigurationsparameter omni_enable_telemetry auf off. Sie können den Telemetrie-Agent deaktivieren, indem Sie das Telemetrie-Flag in der Datei postgresql.conf festlegen oder das Flag zur Laufzeit mit ALTER SYSTEM festlegen.

Telemetrie-Flag in der Datei „postgresql.conf“ festlegen

So ändern Sie die PostgreSQL-Konfigurationsdatei im Verzeichnis für persistente Daten Ihres Containers:

  1. Suchen Sie die Datei postgresql.conf im Datenverzeichnis Ihrer Datenbank ($PGDATA).
  2. AlloyDB Omni-Telemetrie deaktivieren

    omni_enable_telemetry = off
    
  3. Starten Sie Ihren AlloyDB Omni-Container neu, damit die Änderung wirksam wird. Der Telemetrie-Agent erfasst und sendet keine Nutzungsstatistiken mehr an Google.

Telemetrie-Flag zur Laufzeit mit ALTER SYSTEM festlegen

So legen Sie das Telemetrie-Flag fest und behalten die Änderung bei Neustarts bei:

  1. Verbindung zu Ihrer AlloyDB Omni-Instanz mit psql herstellen:

    psql -h HOST -U USER -d DATABASE
    

    Ersetzen Sie die folgenden Werte:

    • HOST: Der Hostname oder die IP-Adresse Ihrer AlloyDB Omni-Instanz, z. B. 127.0.0.1.
    • USER: Der Datenbanknutzer, mit dem Sie eine Verbindung herstellen möchten, z. B. postgres.
    • DATABASE: Die Datenbank, mit der Sie eine Verbindung herstellen möchten, z. B. postgres.
  2. Führen Sie dazu diesen Befehl aus:

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. Laden Sie die Konfiguration neu oder starten Sie die Instanz neu. In einigen Containerkonfigurationen müssen Sie die Instanz möglicherweise neu starten, damit die Änderung vom Hintergrundworker vollständig übernommen wird.

    SELECT pg_reload_conf();
    

    Der Telemetrie-Agent erfasst und sendet keine Nutzungsstatistiken mehr an Google.

Berichte mit Telemetriedaten aktivieren

Wenn Sie die AlloyDB Omni-Telemetrie zuvor deaktiviert haben, können Sie sie wieder aktivieren, indem Sie das Flag omni_enable_telemetry auf on setzen. Sie aktivieren den Telemetrie-Agenten, indem Sie das Flag in der Datei postgresql.conf oder zur Laufzeit mit ALTER SYSTEM festlegen.

Telemetrie-Flag in der Datei „postgresql.conf“ festlegen

  1. Suchen Sie die Datei postgresql.conf im Datenverzeichnis Ihrer Datenbank ($PGDATA).
  2. Legen Sie die folgende Zeile fest:

    omni_enable_telemetry = on
    
  3. Starten Sie Ihren AlloyDB Omni-Container neu, damit die Änderung wirksam wird.

Telemetrie-Flag zur Laufzeit mit ALTER SYSTEM festlegen

  1. Stellen Sie mit psql eine Verbindung zu Ihrer AlloyDB Omni-Instanz her.
  2. Führen Sie dazu diesen Befehl aus:

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. Starten Sie Ihren AlloyDB Omni-Container neu, damit die Änderung wirksam wird.

    docker restart CONTAINER_NAME
    

    Ersetzen Sie Folgendes:

    • CONTAINER_NAME: Der Name Ihres AlloyDB Omni-Containers, z. B. my-omni-1.

AlloyDB Omni-Telemetriestatus prüfen

Sie können den Status des AlloyDB Omni-Telemetrie-Agents prüfen, einschließlich der Frage, ob er aktiviert ist oder ausgeführt wird. Sie können auch die Aktivität des Telemetrie-Agents prüfen.

Prüfen, ob der Telemetrie-Agent aktiviert oder deaktiviert ist

So prüfen Sie den Status der Telemetrieeinstellung:

  1. Stellen Sie eine Verbindung zur Instanz her.
  2. Führen Sie den folgenden Befehl aus:
SHOW omni_enable_telemetry;

Die Ausgabe gibt on oder off zurück, je nachdem, ob Sie die AlloyDB Omni-Telemetrie deaktiviert oder aktiviert haben.

Prüfen, ob der Telemetrie-Agent ausgeführt wird

Führen Sie den folgenden Befehl auf dem Containerhost aus, um zu prüfen, ob der Telemetrie-Agent ausgeführt wird:

docker top CONTAINER_NAME

Ersetzen Sie Folgendes:

  • CONTAINER_NAME: Der Name Ihres AlloyDB Omni-Containers, z. B. my-omni-1.

Wenn die Telemetrie aktiviert ist und ausgeführt wird, enthält die Ausgabe eine Zeile mit dem Text postgres: omni telemetry worker.

Telemetrie-Agent-Aktivität prüfen

Führen Sie den folgenden Befehl auf dem Containerhost aus, um die Aktivität des Telemetrie-Agents zu prüfen:

docker logs CONTAINER_NAME 2>&1 | grep telemetry

Ersetzen Sie Folgendes:

  • CONTAINER_NAME: Der Name Ihres AlloyDB Omni-Containers, z. B. my-omni-1.

Wenn der Telemetrie-Agent ausgeführt wird, enthalten die Logs Meldungen wie die folgenden:

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.

Externes Datenverzeichnis bereitstellen

Standardmäßig werden die Datenbankdaten mit dem Befehl in Schnellstart: AlloyDB Omni installieren in einem von Docker oder Podman verwalteten Bereich gespeichert. Das ist praktisch für den Einstieg, erschwert aber das Auffinden und Verwenden des Datenverzeichnisses. Stattdessen können Sie einen Bind-Mount einrichten, um das Datenverzeichnis einem bekannten Speicherort auf Ihrem Laufwerk zuzuordnen.

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

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • NEW_PASSWORD: Das Passwort, das dem postgres-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.
  • DATA_DIR: Der Pfad des Hostverzeichnisses, in dem Ihre Daten gespeichert sind.
  • HOST_PORT: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port 5432 veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie 5432 an.
  • IMAGE_TAG: Verwenden Sie 16.9.0 für das neueste Debian-Image oder 16.9.0-ubi für das neueste UBI-Image.

ulimits aktivieren

Die ulimit-Parameter geben Prozesslimits an, die der Docker- oder Podman-Container verwenden kann. Für eine optimale Leistung empfehlen wir, die folgenden ulimits festzulegen:

  • nice=-20:-20: AlloyDB Omni passt die Prozessprioritäten an, damit kritische PostgreSQL-Prozesse mit höherer Priorität ausgeführt werden können. Durch die höhere Priorität erhalten die Prozesse eine größere Zuweisung von verfügbaren CPUs. Wenn Sie die Prozessprioritäten anpassen möchten, geben Sie --ulimit=nice=-20:-20 an. Dadurch werden Einschränkungen für den AlloyDB Omni-Container entfernt.

  • memlock=-1:-1: AlloyDB Omni führt eine automatische Speicherverwaltung durch. Wenn Sie --ulimit=memlock=-1:-1 festlegen, kann die Datenbank besser steuern, wie Speicherseiten ein- und ausgelagert werden. Das kann zu einer besseren Leistung führen.

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

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • NEW_PASSWORD: Das Passwort, das dem postgres-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.
  • HOST_PORT: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port 5432 veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie 5432 an.
  • IMAGE_TAG: Verwenden Sie AlloyDB Omni für das neueste Debian-Image oder AlloyDB Omni-ubi für das neueste UBI-Image.

Logging-Treiber angeben

Standardmäßig führen Docker und Podman keine Logwechsel durch. Das kann viel Speicherplatz belegen und schließlich zu einer Erschöpfung des Speicherplatzes führen. Wenn Sie einen anderen Logging-Treiber verwenden möchten, können Sie das Feld --log-driver angeben. So protokollieren Sie beispielsweise in 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

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • NEW_PASSWORD: Das Passwort, das dem postgres-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.
  • HOST_PORT: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port 5432 veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie 5432 an.
  • IMAGE_TAG: Verwenden Sie 16.9.0 für das neueste Debian-Image oder 16.9.0-ubi für das neueste UBI-Image.

Weitere Informationen zu Logging-Treibern finden Sie in der Docker-Dokumentation unter Logging-Treiber konfigurieren und in der Podman-Dokumentation unter podman-run.

Sie können das Logging auch mit PostgreSQL konfigurieren. Weitere Informationen finden Sie unter Logwechsel für AlloyDB Omni konfigurieren.

Volume für gemeinsam genutzten Arbeitsspeicher bereitstellen

Wenn Sie die spaltenbasierte Engine von AlloyDB mit AlloyDB Omni verwenden möchten, empfehlen wir, dem AlloyDB Omni-Container gemeinsam genutzten Arbeitsspeicher zur Verfügung zu stellen. Die Methode hierfür hängt vom Betriebssystem des Hosts ab, wie in den folgenden Beispielen gezeigt.

Linux

Damit der Container auf den freigegebenen Speicher zugreifen kann, müssen Sie /dev/shm bereitstellen:

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

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • NEW_PASSWORD: Das Passwort, das dem postgres-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.
  • HOST_PORT: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port 5432 veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie 5432 an.
  • IMAGE_TAG: Verwenden Sie 16.9.0 für das neueste Debian-Image oder 16.9.0-ubi für das neueste UBI-Image.

macOS

Wenn Sie den freigegebenen Speicher für den Container verfügbar machen möchten, fügen Sie das Flag --shm-size ein:

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

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • NEW_PASSWORD: Das Passwort, das dem postgres-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.
  • SHARED_MEMORY_SIZE: Die Größe, die für /dev/shm im Container festgelegt werden soll, im Format, das unter Container ausführen beschrieben wird. Wenn Sie beispielsweise ein Gigabyte angeben möchten, verwenden Sie den Wert 1g.
  • HOST_PORT: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port 5432 veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie 5432 an.
  • IMAGE_TAG: Verwenden Sie 16.9.0 für das neueste Debian-Image oder 16.9.0-ubi für das neueste UBI-Image.

Wir empfehlen, die Größe des gemeinsam genutzten Arbeitsspeichers auf eine Anzahl von Megabyte festzulegen, die mindestens dem 250-fachen des Werts des google_job_scheduler.max_parallel_workers_per_job-Flags Ihrer Datenbank entspricht. Weitere Informationen zur spaltenbasierten Engine finden Sie unter Spaltenbasierte Engine in AlloyDB Omni konfigurieren.

Wenn das Datenbank-Flag google_job_scheduler.max_parallel_workers_per_job beispielsweise auf den Standardwert 2 gesetzt ist, sollten Sie beim Starten des Datenbankservers ein Flag mit dem Wert --shm-size=500m oder höher hinzufügen.

Weitere Informationen zum Flag --shm-size finden Sie unter Container ausführen.

Erweiterungen aktivieren

Die Liste der in AlloyDB Omni verfügbaren Erweiterungen finden Sie unter Unterstützte Datenbankerweiterungen. PostGIS und Orafce sind zwar nicht in AlloyDB Omni enthalten, können aber beide gemäß der folgenden Anleitung installiert werden:

Installierte Erweiterungen werden mit Standard-PostgreSQL-CREATE EXTENSION-Anweisungen aktiviert, wie unter Erweiterung aktivieren beschrieben.