Auf dieser Seite wird beschrieben, wie Sie Ihre AlloyDB Omni-Installation anpassen. Sie wird über ein Container-Image bereitgestellt, das verschiedene Formen der Anpassung unterstützt. Auf dieser Seite finden Sie einige häufige Anpassungen.
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 Ihrer Festplatte 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 dempostgres
-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 Port5432
veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432
an.IMAGE_TAG
: Verwenden Sie16.3.0
für das neueste Debian-Image oder16.3.0-ubi
für das neueste UBI-Image.
ulimits aktivieren
Die Parameter ulimit geben Prozesslimits an, die der Docker- oder Podman-Container verwenden kann. Für eine optimale Leistung empfehlen wir, die folgenden Grenzwerte 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 der 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 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 dempostgres
-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.HOST_PORT
: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port5432
veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432
an.IMAGE_TAG
: Verwenden Sie16.3.0
für das neueste Debian-Image oder16.3.0-ubi
für das neueste UBI-Image.
Protokollierungstreiber angeben
Standardmäßig führen Docker und Podman keine Logrotationen durch. Das kann viel Speicherplatz beanspruchen 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 dempostgres
-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.HOST_PORT
: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port5432
veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432
an.IMAGE_TAG
: Verwenden Sie16.3.0
für das neueste Debian-Image oder16.3.0-ubi
für das neueste UBI-Image.
Weitere Informationen zu Logging-Treibern finden Sie in der Docker-Dokumentation unter Configure logging drivers und in der Podman-Dokumentation unter podman-run
.
Sie können das Logging auch mit PostgreSQL konfigurieren. Weitere Informationen finden Sie unter Logrotation 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 dafü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
einbinden:
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 dempostgres
-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.HOST_PORT
: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port5432
veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432
an.IMAGE_TAG
: Verwenden Sie16.3.0
für das neueste Debian-Image oder16.3.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 dempostgres
-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 Wert1g
.HOST_PORT
: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port5432
veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432
an.IMAGE_TAG
: Verwenden Sie16.3.0
für das neueste Debian-Image oder16.3.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.