Questa pagina descrive come personalizzare l'installazione di AlloyDB Omni, che viene eseguita tramite un'immagine container che supporta diverse forme di personalizzazione. Questa pagina mostra alcune personalizzazioni comuni.
Attivare e disattivare la telemetria di AlloyDB Omni
La telemetria di AlloyDB Omni implementa un agente client leggero che viene eseguito solo nell'immagine container di AlloyDB Omni. Questo agente raccoglie periodicamente un insieme di metriche di base pseudonime e le invia a un endpoint gestito da Google.
Poiché AlloyDB Omni è un prodotto scaricabile offerto senza costi, questa telemetria fornisce a Google metriche essenziali e non identificabili personalmente (non PII) relative agli ambienti di adozione e deployment generici delle istanze in esecuzione. Questi dati contribuiscono a informare lo sviluppo dei prodotti e la definizione delle priorità dell'assistenza.
Le metriche raccolte includono:
- ID installazione univoco (UUID pseudonimizzato)
- Versione di AlloyDB Omni e versione principale di PostgreSQL
- Informazioni sul sistema host, come numero di CPU, RAM e uptime
Disattivare i report sulla telemetria
Per impedire l'esecuzione dell'agente di telemetria e la generazione di report sulle metriche di utilizzo, imposta
il parametro di configurazione PostgreSQL omni_enable_telemetry su off. Puoi
disattivare l'agente di telemetria impostando il flag di telemetria nel file postgresql.conf
o impostando il flag in fase di runtime utilizzando ALTER SYSTEM.
Imposta il flag di telemetria nel file postgresql.conf
Per modificare il file di configurazione PostgreSQL nella directory dei dati permanenti del container, segui questi passaggi:
- Individua il file
postgresql.confnella directory dei dati del database ($PGDATA). Disattiva la telemetria di AlloyDB Omni.
omni_enable_telemetry = off
Per applicare la modifica, riavvia il container AlloyDB Omni. L'agente di telemetria interrompe la raccolta e l'invio delle metriche di utilizzo a Google.
Imposta il flag di telemetria al runtime utilizzando ALTER SYSTEM
Per impostare il flag di telemetria e rendere permanente la modifica dopo i riavvii, segui questi passaggi:
Connettiti all'istanza AlloyDB Omni utilizzando
psql:psql -h HOST -U USER -d DATABASE
Effettua le seguenti sostituzioni:
HOST: il nome host o l'indirizzo IP dell'istanza AlloyDB Omni, ad esempio127.0.0.1.USER: l'utente del database a cui vuoi connetterti, ad esempiopostgres.DATABASE: il database a cui vuoi connetterti, ad esempiopostgres.
Esegui questo comando:
ALTER SYSTEM SET omni_enable_telemetry = 'off';
Ricarica la configurazione o riavvia l'istanza. In alcune configurazioni dei container, potrebbe essere necessario riavviare l'istanza per assicurarsi che la modifica venga rilevata completamente dal worker in background.
SELECT pg_reload_conf();
L'agente di telemetria interrompe la raccolta e l'invio delle metriche di utilizzo a Google.
Attiva i report sulla telemetria
Se in precedenza hai disattivato la telemetria di AlloyDB Omni, puoi
riattivarla impostando il flag
omni_enable_telemetry su on. Puoi attivare l'agente di telemetria
impostando il flag nel file postgresql.conf o impostandolo
in fase di runtime utilizzando ALTER SYSTEM.
Imposta il flag di telemetria nel file postgresql.conf
- Individua il file
postgresql.confnella directory dei dati del database ($PGDATA). Imposta la seguente riga:
omni_enable_telemetry = on
Per applicare la modifica, riavvia il container AlloyDB Omni.
Imposta il flag di telemetria al runtime utilizzando ALTER SYSTEM
- Connettiti all'istanza AlloyDB Omni utilizzando
psql. Esegui questo comando:
ALTER SYSTEM SET omni_enable_telemetry = 'on';
Per applicare la modifica, riavvia il container AlloyDB Omni.
docker restart CONTAINER_NAME
Esegui la seguente sostituzione:
CONTAINER_NAME: il nome del tuo container AlloyDB Omni, ad esempiomy-omni-1.
Controllare lo stato della telemetria di AlloyDB Omni
Puoi controllare lo stato dell'agente di telemetria AlloyDB Omni, incluso se è abilitato o in esecuzione. Puoi anche controllare l'attività dell'agente di telemetria.
Controllare se l'agente di telemetria è attivato o disattivato
Per controllare lo stato dell'impostazione di telemetria:
- Connettiti all'istanza.
- Esegui questo comando:
SHOW omni_enable_telemetry;
L'output restituisce on o off, a seconda che tu abbia disattivato o attivato
la telemetria di AlloyDB Omni.
Controlla se l'agente di telemetria è in esecuzione
Per verificare se l'agente di telemetria è in esecuzione, esegui questo comando nell'host container:
docker top CONTAINER_NAME
Esegui la seguente sostituzione:
CONTAINER_NAME: il nome del tuo container AlloyDB Omni, ad esempiomy-omni-1.
Se la telemetria è abilitata e in esecuzione, l'output contiene una riga con il testo postgres: omni telemetry worker.
Controllare l'attività dell'agente di telemetria
Per controllare l'attività dell'agente di telemetria, esegui questo comando nell'host del container:
docker logs CONTAINER_NAME 2>&1 | grep telemetry
Esegui la seguente sostituzione:
CONTAINER_NAME: il nome del tuo container AlloyDB Omni, ad esempiomy-omni-1.
Se l'agente di telemetria è in esecuzione, i log contengono messaggi simili ai seguenti:
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.
Montare una directory di dati esterna
Per impostazione predefinita, il comando in Guida rapida: installa AlloyDB Omni memorizza i dati del database in un'area gestita da Docker o Podman. Questo è comodo per iniziare, ma rende difficile trovare e utilizzare la directory dei dati. In alternativa, puoi configurare un montaggio bind per mappare la directory dei dati a una posizione nota sul 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: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
Sostituisci le seguenti variabili:
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
Montaggio di una directory di dati esterna quando si utilizza SELinux
Se SELinux è abilitato e la modalità è impostata su enforcing, il tentativo di montare
una directory di dati esterni genera errori di autorizzazione. Per montare una directory
di dati esterna quando utilizzi SELinux, segui queste istruzioni:
Docker
-
Se il container AlloyDB Omni è in esecuzione, arrestalo.
Sostituisci la seguente variabile:docker stop CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Imposta la modalità di SELinux su
permissive. In questo modo puoi eseguire il contenitore e identificare i dettagli sull'accesso necessario per montare una directory di dati esterni.setenforce 0
-
Esegui il contenitore con una directory di dati esterna.
Sostituisci le seguenti variabili: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
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
-
-
Se non è già installato, installa
policycoreutils-python-utilstramite il gestore di pacchetti. Questo pacchetto fornisce le utilità necessarie per gestire le policy SELinux. -
Per la directory dei dati esterni, imposta il contesto SELinux appropriato.
semanage fcontext -a -t container_file_t "DATA_DIR"
Sostituisci la seguente variabile:restorecon -Rv "DATA_DIR"
-
DATA_DIR: il percorso della directory host in cui sono archiviati i dati.
-
-
Utilizza
ausearchper ottenere informazioni sui requisiti di autorizzazione aggiuntivi.ausearch -c 'postgres' --raw > postgres.avc
-
Crea un profilo di sicurezza SELinux in base al tuo
container AlloyDB Omni e alle informazioni sui permessi
ausearch. Sostituisci la seguente variabile:docker inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Carica il modulo SELinux.
Sostituisci la seguente variabile:semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Attiva
mmap.setsebool -P domain_can_mmap_files 1
-
Arresta e rimuovi il container AlloyDB Omni.
Sostituisci la seguente variabile:docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Imposta la modalità di SELinux su
enforcing.setenforce 1
-
Ricrea il container AlloyDB Omni.
Sostituisci le seguenti variabili:docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ --security-opt label=type:CONTAINER_NAME.process \ google/alloydbomni:IMAGE_TAG
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
-
Docker
-
Se il container AlloyDB Omni è in esecuzione, arrestalo.
Sostituisci la seguente variabile:docker stop CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Imposta la modalità di SELinux su
permissive. In questo modo puoi eseguire il contenitore e identificare i dettagli sull'accesso necessario per montare una directory di dati esterni.sudo setenforce 0
-
Esegui il contenitore con una directory di dati esterna.
Sostituisci le seguenti variabili: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
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
-
-
Se non è già installato, installa
policycoreutils-python-utilstramite il gestore di pacchetti. Questo pacchetto fornisce le utilità necessarie per gestire le policy SELinux. -
Se la directory dei dati esterni non si trova all'interno della directory home, imposta il
contesto SELinux appropriato.
sudo semanage fcontext -a -t container_file_t "DATA_DIR"
Sostituisci la seguente variabile:sudo restorecon -Rv "DATA_DIR"
-
DATA_DIR: il percorso della directory host in cui sono archiviati i dati.
-
-
Utilizza
ausearchper ottenere informazioni sui requisiti di autorizzazione aggiuntivi.sudo ausearch -c 'postgres' --raw > postgres.avc
-
Crea un profilo di sicurezza SELinux in base al tuo
container AlloyDB Omni e alle informazioni sui permessi
ausearch. Sostituisci la seguente variabile:docker inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Carica il modulo SELinux.
Sostituisci la seguente variabile:sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Attiva
mmap.sudo setsebool -P domain_can_mmap_files 1
-
Arresta e rimuovi il container AlloyDB Omni.
Sostituisci la seguente variabile:docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Imposta la modalità di SELinux su
enforcing.sudo setenforce 1
-
Ricrea il container AlloyDB Omni.
Sostituisci le seguenti variabili:docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ --security-opt label=type:CONTAINER_NAME.process \ google/alloydbomni:IMAGE_TAG
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
-
Podman
-
Se il container AlloyDB Omni è in esecuzione, arrestalo.
Sostituisci la seguente variabile:podman stop CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Imposta la modalità di SELinux su
permissive. In questo modo puoi eseguire il contenitore e identificare i dettagli sull'accesso necessario per montare una directory di dati esterni.setenforce 0
-
Esegui il contenitore con una directory di dati esterna.
Sostituisci le seguenti variabili: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
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
-
-
Se non è già installato, installa
policycoreutils-python-utilstramite il gestore di pacchetti. Questo pacchetto fornisce le utilità necessarie per gestire le policy SELinux. -
Per la directory dei dati esterni, imposta il contesto SELinux appropriato.
semanage fcontext -a -t container_file_t "DATA_DIR"
Sostituisci la seguente variabile:restorecon -Rv "DATA_DIR"
-
DATA_DIR: il percorso della directory host in cui sono archiviati i dati.
-
-
Utilizza
ausearchper ottenere informazioni sui requisiti di autorizzazione aggiuntivi.ausearch -c 'postgres' --raw > postgres.avc
-
Crea un profilo di sicurezza SELinux in base al tuo
container AlloyDB Omni e alle informazioni sui permessi
ausearch. Sostituisci la seguente variabile:podman inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Carica il modulo SELinux.
Sostituisci la seguente variabile:semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Attiva
mmap.setsebool -P domain_can_mmap_files 1
-
Arresta e rimuovi il container AlloyDB Omni.
Sostituisci la seguente variabile:podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Imposta la modalità di SELinux su
enforcing.setenforce 1
-
Ricrea il container AlloyDB Omni.
Sostituisci le seguenti variabili:podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ --security-opt label=type:CONTAINER_NAME.process \ docker.io/google/alloydbomni:IMAGE_TAG
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
-
Podman
-
Se il container AlloyDB Omni è in esecuzione, arrestalo.
Sostituisci la seguente variabile:podman stop CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Imposta la modalità di SELinux su
permissive. In questo modo puoi eseguire il contenitore e identificare i dettagli sull'accesso necessario per montare una directory di dati esterni.sudo setenforce 0
-
Esegui il contenitore con una directory di dati esterna.
Sostituisci le seguenti variabili: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
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
-
-
Se non è già installato, installa
policycoreutils-python-utilstramite il gestore di pacchetti. Questo pacchetto fornisce le utilità necessarie per gestire le policy SELinux. -
Per la directory dei dati esterni, imposta il contesto SELinux appropriato.
sudo semanage fcontext -a -t container_file_t "DATA_DIR"
Sostituisci la seguente variabile:sudo restorecon -Rv "DATA_DIR"
-
DATA_DIR: il percorso della directory host in cui sono archiviati i dati.
-
-
Utilizza
ausearchper ottenere informazioni sui requisiti di autorizzazione aggiuntivi.sudo ausearch -c 'postgres' --raw > postgres.avc
-
Crea un profilo di sicurezza SELinux in base al tuo
container AlloyDB Omni e alle informazioni sui permessi
ausearch. Sostituisci la seguente variabile:podman inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Carica il modulo SELinux.
Sostituisci la seguente variabile:sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Attiva
mmap.sudo setsebool -P domain_can_mmap_files 1
-
Arresta e rimuovi il container AlloyDB Omni.
Sostituisci la seguente variabile:podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.
-
-
Imposta la modalità di SELinux su
enforcing.sudo setenforce 1
-
Ricrea il container AlloyDB Omni.
Sostituisci le seguenti variabili:podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ --security-opt label=type:CONTAINER_NAME.process \ docker.io/google/alloydbomni:IMAGE_TAG
-
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio:my-omni-1. -
NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione. -
DATA_DIR: il percorso della directory host in cui sono archiviati i dati. -
HOST_PORT: porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432. -
IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubi9per l'ultima immagine UBI.
-
Abilita ulimit
I parametri ulimit specificano i limiti di processo che il container Docker o Podman può utilizzare. Per prestazioni ottimali, ti consigliamo di impostare i seguenti limiti utente:
nice=-20:-20: AlloyDB Omni regola le priorità dei processi per consentire ai processi PostgreSQL critici di essere eseguiti con priorità più elevata. La priorità più alta assegna ai processi una quota maggiore di CPU disponibili. Per modificare le priorità dei processi, specifica--ulimit=nice=-20:-20, che rimuove le limitazioni per il container AlloyDB Omni.memlock=-1:-1: AlloyDB Omni esegue la gestione automatica della memoria. L'impostazione di--ulimit=memlock=-1:-1consente al database di controllare meglio la modalità di scambio delle pagine di memoria, il che può comportare un miglioramento delle prestazioni.
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
Sostituisci le seguenti variabili:
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione.HOST_PORT: la porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432.IMAGE_TAG: utilizzaAlloyDB Omniper l'ultima immagine Debian oAlloyDB Omni-ubiper l'ultima immagine UBI.
Specifica un driver di logging
Per impostazione predefinita, Docker e Podman non eseguono la rotazione dei log. Questa operazione può utilizzare molto
spazio su disco e alla fine esaurirlo. Per utilizzare un driver di logging diverso, puoi specificare il campo --log-driver. Ad esempio, per accedere a
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
Sostituisci le seguenti variabili:
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione.HOST_PORT: la porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432.IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubiper l'ultima immagine UBI.
Per ulteriori informazioni sui driver di logging, consulta la documentazione di Docker Configura i driver di logging e di Podman podman-run.
Inoltre, puoi configurare la registrazione utilizzando PostgreSQL. Per saperne di più, consulta Configura la rotazione dei log di AlloyDB Omni.
Montare un volume di memoria condivisa
Se prevedi di utilizzare il motore colonnare di AlloyDB con AlloyDB Omni, ti consigliamo di rendere disponibile la memoria condivisa al container AlloyDB Omni. Il metodo per farlo varia a seconda del sistema operativo host, come mostrato negli esempi seguenti.
Linux
Per rendere disponibile la memoria condivisa al container, monta /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
Sostituisci le seguenti variabili:
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione.HOST_PORT: la porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432.IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubiper l'ultima immagine UBI.
macOS
Per rendere disponibile la memoria condivisa al container, includi il flag --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
Sostituisci le seguenti variabili:
CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio,my-omni-1.NEW_PASSWORD: password assegnata all'utentepostgresdel nuovo contenitore dopo la sua creazione.SHARED_MEMORY_SIZE: dimensioni da impostare per/dev/shmsul container, nel formato descritto in Esecuzione di container. Ad esempio, per specificare un gigabyte, utilizza il valore1g.HOST_PORT: la porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432.IMAGE_TAG: utilizza17.5.0per l'ultima immagine Debian o17.5.0-ubiper l'ultima immagine UBI.
Ti consigliamo di impostare la dimensione della memoria condivisa su un numero di megabyte pari ad almeno il valore del flag google_job_scheduler.max_parallel_workers_per_job del tuo database, moltiplicato per 250. Per saperne di più sul motore colonnare, consulta
Configurare il motore colonnare in AlloyDB Omni.
Ad esempio, se il flag di database google_job_scheduler.max_parallel_workers_per_job è impostato sul valore predefinito 2, valuta la possibilità di aggiungere un flag di --shm-size=500m o superiore all'avvio del server di database.
Per ulteriori informazioni sul flag --shm-size, vedi
Esecuzione di container.
Attivare le estensioni
L'elenco delle estensioni disponibili in AlloyDB Omni è disponibile in Estensioni del database supportate. Sebbene PostGIS e Orafce non siano inclusi in AlloyDB Omni, possono essere installati seguendo le istruzioni:
Le estensioni installate vengono abilitate utilizzando le istruzioni CREATE EXTENSION standard di PostgreSQL, come descritto in Abilitare un'estensione.