Configurazione delle impostazioni dei parametri per l'estensione pgactive - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle impostazioni dei parametri per l'estensione pgactive

È possibile utilizzare la seguente query per visualizzare tutti i parametri associati all'estensione pgactive.

app=> SELECT * FROM pg_settings WHERE name LIKE 'pgactive.%';

È possibile configurare l'pgactiveestensione utilizzando vari parametri. Questi parametri possono essere impostati tramite l'interfaccia CLI AWS Management Console o l' AWS interfaccia CLI.

Principali parametri di estensione pgactive

La tabella seguente fornisce un riferimento per i parametri principali dell'pgactiveestensione:

Parametro

Unità

Predefinito

Descrizione

pgactive.conflict_logging_include_tuples

boolean

Registra le informazioni complete sulla tupla per l'pgactiveestensione.

Nota

È necessario il riavvio del server per rendere effettive le modifiche.

pgactive.log_conflicts_to_table

boolean

Determina se l'pgactiveestensione registra i conflitti rilevati nella pgactive.pgactive_conflict_history tabella. Per ulteriori informazioni, consulta Registrazione dei conflitti per i dettagli.

Nota

È necessario il riavvio del server per rendere effettive le modifiche.

pgactive.log_conflicts_to_logfile

boolean

Determina se l'pgactiveestensione registra i conflitti rilevati nel file di registro PostgreSQL. Per ulteriori informazioni, consulta Registrazione dei conflitti per i dettagli.

Nota

È necessario il riavvio del server per rendere effettive le modifiche.

pgactive.synchronous_commit

boolean

off

Determina il comportamento di commit per i worker di applicazione pgactive. Quando sono disattivati (disattivati), gli apply worker eseguono commit asincroni, il che migliora il throughput di PostgreSQL durante le operazioni di applicazione ma ritarda le conferme di riproduzione all'upstream. L'impostazione su è sempre sicura e non causerà la perdita o il salto delle transazioni. off Questa impostazione influisce solo sulla tempistica dello svuotamento del disco sul nodo a valle e sull'invio delle conferme a monte. Il sistema ritarda l'invio delle conferme di replay flush fino a quando i commit non vengono scaricati su disco tramite operazioni non correlate come checkpoint o operazioni periodiche. Tuttavia, se nell'upstream è elencato il downstream, impostandolo su questa opzione i commit sincroni sull'upstream synchronous_standby_names impiegheranno più tempo a segnalare l'esito off positivo al client. In questo caso, imposta il parametro su. on

Nota

Anche se questo parametro è impostato su un numero di on nodi elencati insynchronous_standby_names, è possibile che si verifichino conflitti di replica nelle configurazioni attive-attive. Questo perché il sistema non dispone del blocco tra i nodi e della gestione globale delle istantanee, il che consente alle transazioni simultanee su nodi diversi di modificare la stessa tupla. Inoltre, le transazioni iniziano la replica solo dopo il commit sul nodo upstream. L'abilitazione del commit sincrono non trasforma l'estensione pgactive in un sistema sempre coerente.

pgactive.temp_dump_directory

string

Definisce il percorso di archiviazione temporaneo richiesto per le operazioni di clonazione del database durante la configurazione iniziale. Questa directory deve essere scrivibile dall'utente postgres e disporre di spazio di archiviazione sufficiente per contenere un dump completo del database. Il sistema utilizza questa posizione solo durante la configurazione iniziale del database con operazioni di copia logica. Questo parametro non viene utilizzato dapgactive_init_copy command.

pgactive.max_ddl_lock_delay

milliseconds

-1

Speciifica il tempo di attesa massimo per il blocco DDL prima dell'interruzione forzata delle transazioni di scrittura simultanee. Il valore predefinito è-1, che adotta il valore impostato in. max_standby_streaming_delay Questo parametro accetta unità di tempo. Ad esempio, puoi impostarlo su 10 secondi per 10 secondi. Durante questo periodo di attesa, il sistema tenta di acquisire blocchi DDL in attesa del commit o del rollback delle transazioni di scrittura in corso. Per ulteriori informazioni, consulta DDL Locking.

pgactive.ddl_lock_timeout

milliseconds

-1

Specifica il tempo di attesa di un tentativo di blocco DDL per ottenere il blocco. Il valore predefinito è-1, che utilizza il valore specificato in lock_timeout. È possibile impostare questo parametro utilizzando unità di tempo come 10s per 10 secondi. Questo timer controlla solo il periodo di attesa per ottenere un blocco DDL. Una volta che il sistema ottiene il blocco e inizia l'operazione DDL, il timer si arresta. Questo parametro non limita la durata totale di mantenimento di un blocco DDL o il tempo complessivo di funzionamento DDL. Per controllare la durata totale dell'operazione, usa statement_timeout invece. Per ulteriori informazioni, vedere DDL Locking.

pgactive.debug_trace_ddl_locks_level

boolean

Sostituisce il livello di registro di debug predefinito per le operazioni di blocco DDL nell'estensione. pgactive Se configurata, questa impostazione fa sì che i messaggi relativi al blocco DDL vengano emessi al livello di debug LOG anziché al livello predefinito. Utilizzate questo parametro per monitorare l'attività di blocco DDL senza abilitare i livelli verbosi o di log sull'intero serverDEBUG1. DEBUG2

Livelli di registro disponibili, in ordine crescente di dettaglio:

  • nessuno: i messaggi di blocco DDL vengono visualizzati solo ai livelli di registro del server DEBUG1 e inferiori.

  • dichiarazione - Aggiunge l'output LOG per i tentativi di acquisizione del blocco DDL.

  • acquire_release - Registra l'acquisizione di blocchi, il rilascio, gli eventi di declinazione e le applicazioni peer-node dei blocchi DDL remoti.

  • peers: fornisce dettagli aggiuntivi sulle negoziazioni di blocco DDL tra nodi peer.

  • debug: registra tutte le attività relative al blocco DDL a livello di LOG.

Per ulteriori informazioni sulle opzioni di monitoraggio, consulta Monitoraggio dei blocchi DDL globali.

Nota

Le modifiche a questa impostazione hanno effetto quando ricarichi la configurazione. Non è necessario riavviare il server.

Parametri di estensione pgactive aggiuntivi

La tabella seguente presenta le opzioni di configurazione interne utilizzate meno frequentemente e disponibili per l'pgactiveestensione.

Parametro

Unità

Predefinito

Descrizione

pgactive.debug_apply_delay

integer

Imposta un ritardo di applicazione (in millisecondi) per le connessioni configurate che non hanno un ritardo di applicazione esplicito nell'immissione. pgactive.pgactive_connections Questo ritardo viene impostato durante la creazione del nodo o il momento di iscrizione e pgactive non riprodurrà una transazione sui nodi peer fino a quando non sarà trascorso almeno il numero di millisecondi specificato dal momento in cui è stato eseguito il commit.

Utilizzato principalmente per simulare reti ad alta latenza in ambienti di test per facilitare la creazione di conflitti. Ad esempio, con un ritardo di 500 ms sui nodi A e B, hai almeno 500 ms per eseguire un inserimento in conflitto sul nodo B dopo aver inserito un valore sul nodo A.

Nota

Richiede il ricaricamento o il riavvio del server degli apply worker per avere effetto.

pgactive.connectability_check_duration

integer

Speciifica la durata (in secondi) con cui un database worker tenta di stabilire connessioni durante i tentativi falliti. Il worker effettua un tentativo di connessione al secondo finché non riesce o raggiunge questo valore di timeout. Questa impostazione è utile quando il motore del database si avvia prima che l'operatore sia pronto a stabilire connessioni.

pgactive.skip_ddl_replication

boolean

on

Controlla il modo in cui le modifiche DDL vengono replicate o gestite in Amazon RDS se abilitato. pgactive Se impostato suon, il nodo elabora le modifiche DDL come un nodo non pgcattivo. Quando si lavora con questo parametro si applicano i seguenti requisiti:

  • I nuovi nodi non possono entrare a far parte di un gruppo pgactive se il loro skip_ddl_replication valore è diverso dal nodo upstream.

  • I nodi esistenti non possono avviare pgactive worker se il valore del loro parametro non corrisponde al nodo upstream.

  • Tutti i membri pgactive devono utilizzare lo stesso valore del parametro.

È possibile modificare questo parametro in due modi con i privilegi di super utente: globalmente, localmente (livello di sessione).

Nota

La modifica errata di questo parametro può interrompere le impostazioni di replica.

pgactive.do_not_replicate

boolean

Questo parametro è solo per uso interno. Quando si imposta questo parametro in una transazione, le modifiche non vengono replicate su altri nodi del cluster DB.

Nota

La modifica errata di questo parametro può interrompere le impostazioni di replica.

pgactive.discard_mismatched_row_attributes

boolean

Questo parametro è destinato esclusivamente all'uso specialistico. Si consiglia di utilizzare questo parametro solo per la risoluzione di problemi di replica specifici. Utilizzate questo parametro quando:

  • Il flusso di replica in entrata contiene righe con più colonne rispetto alla tabella locale.

  • Queste righe remote contengono valori non nulli.

Questa impostazione ha la precedenza sul seguente messaggio di errore e consente la divergenza dei dati per consentire la continuazione della replica: cannot right-pad mismatched attributes; attno %u is missing in local table and remote row has non-null, non-dropped value for this attribute

Nota

La modifica errata di questo parametro può compromettere le impostazioni di replica.

pgactive.debug_trace_replay

boolean

Se impostato suon, emette un messaggio di registro per ogni azione remota eseguita a valle del processo di Apply Workers. I log includono:

  • Tipo di modifica

  • Nome della tabella interessato

  • Numero di modifiche dall'inizio della transazione

  • LSN di conferma della transazione

  • Timestamp del commit

  • Identificatore del nodo upstream

  • Identificatore del nodo di inoltro (se applicabile)

I registri registrano anche i comandi DDL in coda e le eliminazioni di tabella.

para>

Per impostazione predefinita, i registri non includono il contenuto dei campi riga. Per includere i valori delle righe nei log, è necessario ricompilare con i seguenti flag abilitati:

  • VERBOSE_INSERT

  • VERBOSE_UPDATE

  • VERBOSE_DELETE

Nota

L'attivazione di questa impostazione di registrazione può influire sulle prestazioni. Si consiglia di abilitarla solo quando necessario per la risoluzione dei problemi. Le modifiche a questa impostazione hanno effetto quando ricarichi la configurazione. Non è necessario riavviare il server.

pgactive.extra_apply_connection_options

È possibile configurare i parametri di connessione per tutte le connessioni tra nodi peer con nodi pgactive. Questi parametri controllano impostazioni come keepalives e le modalità SSL. Per impostazione predefinita, pgactive utilizza i seguenti parametri di connessione:

  • connect_timeout=30

  • mantieniti in vita = 1

  • keepalives_idle=20

  • keepalives_intervallo=20

  • keepalives_count=5

Per sovrascrivere i parametri predefiniti, usa il seguente comando simile:

pgactive.extra_apply_connection_options = 'keepalives=0'

Le stringhe di connessione dei singoli nodi hanno la precedenza su entrambe queste impostazioni e sulle opzioni di connessione integrate di pgactive. Per ulteriori informazioni sui formati delle stringhe di connessione, vedere libpq connection strings.

Consigliamo di mantenere abilitate le impostazioni keepalive predefinite. Disattiva i keepalive solo se riscontri problemi con il completamento di transazioni di grandi dimensioni su reti inaffidabili.

Nota

Ti consigliamo di mantenere abilitate le impostazioni keepalive predefinite. Disattiva i keepalive solo se riscontri problemi con il completamento di transazioni di grandi dimensioni su reti inaffidabili. Le modifiche a questa impostazione hanno effetto quando ricarichi la configurazione. Non è necessario riavviare il server.

pgactive.init_node_parallel_jobs (int)

Speciifica il numero di lavori paralleli che pg_dump pg_restore possono essere utilizzati durante l'unione del nodo logico con la pgactive.pgactive_join_group funzione.

Le modifiche a questa impostazione hanno effetto quando si ricarica la configurazione. Non è necessario riavviare il server.

pgactive.max_nodes

int

4

Speciifica il numero massimo di nodi consentiti in un gruppo di estensioni pgactive. Il valore predefinito è 4 nodi. È necessario considerare quanto segue quando si imposta il valore di questo parametro:

  • Tutti i nodi in un gruppo di estensioni pgactive devono utilizzare lo stesso valore del parametro.

  • Un nuovo nodo non può unirsi se il valore del parametro è diverso dal nodo a monte.

  • I nodi esistenti non possono avviare pgactive extension worker se il valore del loro parametro è diverso dal nodo upstream.

  • I gruppi più grandi richiedono sforzi di monitoraggio e manutenzione aggiuntivi, quindi è opportuno valutare questo parametro con saggezza.

È possibile impostare questo parametro in due modi: nel file di configurazione, utilizzando il comando ALTER SYSTEM SET

Il valore predefinito per questo parametro è4, il che significa che possono essere consentiti al massimo 4 nodi nel gruppo di pgactive estensioni in qualsiasi momento.

Nota

La modifica ha effetto dopo il riavvio del server.

pgactive.permit_node_identifier_getter_function_creation

boolean

Questo parametro è destinato esclusivamente all'uso interno. Se abilitata, pgactive l'estensione consente la creazione della funzione getter dell'identificatore di nodo pgactive.