Personalizzare l'installazione di AlloyDB Omni

AlloyDB Omni viene implementato tramite un'immagine container, che consente diverse forme di personalizzazione. Questa pagina mostra alcune personalizzazioni comuni.

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 e Podman. È utile per iniziare, ma rende difficile trovare e utilizzare la directory dei dati. In alternativa, puoi configurare un montaggio di unione 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: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

Sostituisci le seguenti variabili:

  • CONTAINER_NAME: il nome utilizzato per il contenitore. Ad esempio, my-omni-1.
  • NEW_PASSWORD: password assegnata all'utentepostgres del nuovo contenitore dopo la sua creazione.
  • DATA_DIR: percorso della directory host in cui sono memorizzati i dati.
  • HOST_PORT: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

Attiva ulimits

I parametri ulimit specificano i limiti di processo che il contenitore Docker o Podman può utilizzare. Per un rendimento ottimale, ti consigliamo di impostare i seguenti ulimit:

  • nice=-20:-20: AlloyDB Omni regola le priorità dei processi per consentire l'esecuzione con priorità più elevata dei processi PostgreSQL critici. La priorità più elevata offre ai processi una maggiore allocazione delle CPU disponibili. Per regolare le priorità dei processi, specifica --ulimit=nice=-20:-20, che rimuove le limitazioni per il contenitore AlloyDB Omni.

  • memlock=-1:-1: AlloyDB Omni esegue la gestione automatica della memoria. L'impostazione --ulimit=memlock=-1:-1 consente al database di controllare meglio il modo in cui le pagine di memoria vengono scambiate, 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: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

Sostituisci le seguenti variabili:

  • CONTAINER_NAME: il nome utilizzato per il contenitore. Ad esempio, my-omni-1.
  • NEW_PASSWORD: password assegnata all'utentepostgres del nuovo contenitore dopo la sua creazione.
  • HOST_PORT: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

Specifica un driver di logging

Per impostazione predefinita, Docker e Podman non eseguono la rotazione dei log. Ciò può occupare molto spazio su disco e, alla fine, portare all'esaurimento dello spazio su disco. 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: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

Sostituisci le seguenti variabili:

  • CONTAINER_NAME: il nome utilizzato per il contenitore. Ad esempio, my-omni-1.
  • NEW_PASSWORD: password assegnata all'utentepostgres del nuovo contenitore dopo la sua creazione.
  • HOST_PORT: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

Per ulteriori informazioni sui driver di logging, consulta la pagina Configura i driver di logging di Docker e la documentazione podman-run di Podman.

Inoltre, puoi configurare la registrazione utilizzando PostgreSQL. Per ulteriori informazioni, consulta la pagina sulla configurazione della rotazione dei log di AlloyDB Omni.

Montare un volume di memoria condivisa

Se prevedi di utilizzare il motore a colonne di AlloyDB con AlloyDB Omni, ti consigliamo di rendere disponibile la memoria condivisa per il contenitore AlloyDB Omni. Il metodo per eseguire questa operazione varia a seconda del sistema operativo host, come mostrato negli esempi riportati di seguito.

Linux

Per rendere disponibile la memoria condivisa al contenitore, 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: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

Sostituisci le seguenti variabili:

  • CONTAINER_NAME: il nome utilizzato per il contenitore. Ad esempio, my-omni-1.
  • NEW_PASSWORD: password assegnata all'utentepostgres del nuovo contenitore dopo la sua creazione.
  • HOST_PORT: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

macOS

Per rendere disponibile la memoria condivisa per il contenitore, 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: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

Sostituisci le seguenti variabili:

  • CONTAINER_NAME: il nome utilizzato per il contenitore. Ad esempio, my-omni-1.
  • NEW_PASSWORD: password assegnata all'utentepostgres del nuovo contenitore dopo la sua creazione.
  • SHARED_MEMORY_SIZE: dimensione da impostare per /dev/shm sul contenutore, nel formato descritto in Eseguire i container. Per esempio, per specificare un gigabyte, utilizza il valore 1g.
  • HOST_PORT: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

Ti consigliamo di impostare la dimensione della memoria condivisa su un numero di megabyte uguale almeno al valore del flag google_job_scheduler.max_parallel_workers_per_job del tuo database moltiplicato per 250. Per ulteriori informazioni sul motore a colonne, consulta Configurare il motore a colonne in AlloyDB Omni.

Ad esempio, se il flag del database google_job_scheduler.max_parallel_workers_per_job è impostato sul valore predefinito 2, ti consigliamo di aggiungere un flag di --shm-size=500m o superiore all'avvio del server di database.

Per ulteriori informazioni sul flag --shm-size, consulta Eseguire i contenitori.

Attivare le estensioni

L'elenco delle estensioni disponibili in AlloyDB Omni è disponibile in Estensioni di database supportate. Anche se PostGIS e Orafce non sono inclusi in AlloyDB Omni, possono essere entrambi installati seguendo le istruzioni riportate di seguito:

Le estensioni installate vengono attivate utilizzando istruzioni CREATE EXTENSION standard PostgreSQL, come descritto in Attivare un'estensione.