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.
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'utentepostgres
del nuovo contenitore dopo la sua creazione.DATA_DIR
: il percorso della directory host in cui sono archiviati i dati.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
: utilizza16.8.0
per l'ultima immagine Debian o16.8.0-ubi
per 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:
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 maggiore allocazione delle CPU disponibili. Per modificare 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 di--ulimit=memlock=-1:-1
consente 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'utentepostgres
del 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 Omni
per l'ultima immagine Debian oAlloyDB Omni-ubi
per 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 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: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'utentepostgres
del 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
: utilizza16.8.0
per l'ultima immagine Debian o16.8.0-ubi
per 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 ulteriori informazioni, consulta la sezione Configurare la rotazione dei log di AlloyDB Omni.
Montare un volume di memoria condivisa
Se prevedi di utilizzare il motore colonnare 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'utentepostgres
del 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
: utilizza16.8.0
per l'ultima immagine Debian o16.8.0-ubi
per 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'utentepostgres
del nuovo contenitore dopo la sua creazione.SHARED_MEMORY_SIZE
: dimensioni da impostare per/dev/shm
sul 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
: utilizza16.8.0
per l'ultima immagine Debian o16.8.0-ubi
per l'ultima immagine UBI.
Ti consigliamo di impostare le dimensioni 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 entrambi seguendo le istruzioni:
Le estensioni installate vengono abilitate utilizzando le istruzioni CREATE EXTENSION
standard di PostgreSQL, come descritto in Abilitare un'estensione.