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 porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.
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 porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.
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 porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.
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 porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.
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 valore1g
.HOST_PORT
: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.
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.