Gestione del database OCI con le configurazioni PostgreSQL

Utilizza le configurazioni per gestire le variabili e abilitare le estensioni per un database OCI con un sistema di database PostgreSQL.

Le configurazioni sono elenchi di variabili ed estensioni abilitate e configurate che è possibile impostare per ottimizzare o estendere un database. I set di variabili predefinite sono ottimizzati per le forme hardware associate ai sistemi di database. Molte estensioni vengono abilitate automaticamente per i sistemi di database.

Gli amministratori possono impostare più variabili e abilitare estensioni aggiuntive creando una nuova configurazione personalizzata o copia di una configurazione esistente. Dopo l'assegnazione di una configurazione a un database, tutte le estensioni abilitate saranno disponibili per l'amministratore del database.

Importante

Poiché il servizio OCI Database con PostgreSQL ottimizza le variabili di configurazione per te, solo gli utenti avanzati potrebbero dover modificarle e gestirle. Per ulteriori informazioni, vedere il PostgreSQL manuale di riferimento.

Variabili

Le configurazioni predefinite specifiche della forma includono variabili che sono state ottimizzate per fornire buone prestazioni e comportamenti pronti all'uso. È possibile personalizzare queste variabili quando si creano una nuova configurazione personalizzata o si copia di una configurazione esistente e si applica la configurazione personalizzata a un sistema di database.

I tipi di variabile includono:

  • Variabili utente, che possono essere modificate in un elenco di configurazione personalizzato. È possibile modificare le variabili utente quando si crea o si copia una configurazione. Alcune variabili utente sono variabili utente predefinite. Impossibile rimuovere queste variabili utente predefinite da una configurazione.

    • Variabili dinamiche, che possono essere modificate senza riavviare il database.
    • Variabili statiche che richiedono il riavvio di PostgreSQL per essere modificate.
  • Variabili di sistema, che non possono essere modificate. Le variabili di sistema vengono definite in base alla forma o ai requisiti del database.

Per visualizzare i valori associati a una variabile di configurazione specifica, vedere Come ottenere i dettagli di configurazione predefiniti e Come ottenere i dettagli di configurazione personalizzati.

Ulteriori informazioni per le variabili di configurazione

oci.pagecache_size

La versione community di PostgreSQL si basa sul sistema operativo Linux per gestire la memoria sul sistema. Tra gli altri elementi, utilizza la cache delle pagine del kernel Linux per evitare di andare sul disco per la maggior parte delle pagine di database. La cache delle pagine Linux è necessariamente molto generale e non è personalizzata per PostgreSQL.

Al contrario, OCI Database con PostgreSQL esegue la propria gestione della memoria. OCI Database con PostgreSQL ha implementato una cache di pagine personalizzata e non si basa esclusivamente sulla cache di pagine Linux. La cache delle pagine personalizzata viene implementata completamente nella memoria fissa degli utenti ed è più efficace per i carichi di lavoro PostgreSQL (ad esempio evitando il doppio buffering). OCI Database con PostgreSQL prealloca una parte fissa di memoria per questa cache di pagine personalizzata e non la utilizzerà per altri scopi.

OCI Database con PostgreSQL è, come la versione della community, impostato per allocare una certa quantità di memoria per shared_buffers.

È possibile controllare sia oci.pagecache che shared_buffers utilizzando variabili di configurazione.

  • oci.pagecache_size controlla la quantità di memoria allocata al database OCI con la cache delle pagine personalizzata PostgreSQL. Questa variabile è definita in MiBytes.
  • shared_buffers controlla la quantità di memoria allocata alla memoria condivisa PostgreSQL per le pagine di dati. Questa variabile è definita in unità di dimensione blocco (8KiB).

I valori predefiniti sono circa il 50% di memoria per oci.pagecache_size e il 25% di memoria per shared_buffers. Con le impostazioni predefinite, circa il 75% della memoria totale del sistema di database viene sempre allocata. Le metriche mostrano questa quantità come utilizzata, ma questa memoria viene utilizzata per i buffer di dati PostgreSQL come previsto e non produce effetti negativi.

pg_cron.database_name

Per impostazione predefinita, l'estensione pg_cron può essere creata solo nel database postgres. Se si tenta di creare l'estensione, potrebbe verificarsi un messaggio di errore come ERROR: can only create extension in database postgres.

Per creare l'estensione in qualsiasi altro database, è necessario modificare il valore del parametro pg_cron.database_name in una configurazione personalizzata. Ad esempio:

pg_cron.database_name='<database_name>'

Per ulteriori informazioni, vedere pg_cron.

Configurazioni flessibili e variabili interi

Alcune variabili utente vengono specificate da valori interi. Se si utilizza una configurazione fissa, è possibile impostare una variabile come max_connections su un valore specifico. Tale valore non potrà essere modificato in un secondo momento e potrebbe rendere la configurazione incompatibile con altri sistemi di database.

Una configurazione flessibile consente di utilizzare espressioni interi per i valori delle variabili. Le variabili che utilizzano espressioni intere possono ridimensionarsi in modo flessibile insieme ai sistemi di database di diverse configurazioni hardware. Ad esempio, invece di un valore impostato per max_connections, è possibile legarlo alla memoria dell'istanza:

min(DB_INSTANCE_MEMORY_IN_BYTES/76251136,5000)

Il database OCI con PostgreSQL supporta le seguenti variabili nelle espressioni intere:

  • DB_INSTANCE_OCPU_COUNT
  • DB_INSTANCE_MEMORY_IN_BYTES
  • DB_INSTANCE_MEMORY_IN_KILOBYTES
  • DB_INSTANCE_MEMORY_IN_MEGABYTES
  • DB_INSTANCE_MEMORY_IN_GIGABYTES
  • DB_INSTANCE_MEMORY_IN_TERABYTES

Criterio IAM necessario

Le istruzioni dei criteri riportate di seguito consentono a un gruppo di amministratori di gestire il database OCI con configurazioni di database PostgreSQL.

Allow group <postgresql-admin-group> to read compartments in tenancy
Allow group <postgresql-admin-group> to manage postgres-configuration in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
Allow group <postgresql-admin-group> to use tag-namespaces in tenancy

Per ulteriori informazioni, vedere Database OCI con criteri PostgreSQL.