Utilizzare i file di log WAL del database PostgreSQL

Panoramica

Datastream utilizza il log delle transazioni PostgreSQL WAL (Write Ahead Log) per leggere i flussi PostgreSQL. Il log è archiviato in file WAL sul server del database. Ogni record nel log WAL rappresenta una singola modifica ai dati effettivi in una delle tabelle del database.

Imposta i parametri di configurazione per i file WAL PostgreSQL

Ti consigliamo di applicare le seguenti impostazioni di configurazione al tuo database PostgreSQL:

  • max_slot_wal_keep_size: imposta questo parametro (disponibile solo per PostgreSQL 13 e versioni successive) per limitare la quantità di spazio di archiviazione utilizzata dallo slot di replica. Questo è particolarmente importante per le transazioni a lunga esecuzione che, in casi estremi, possono portare le dimensioni del file WAL a occupare l'intero spazio di archiviazione e provocare l'arresto anomalo del database.

  • statement_timeout: imposta questo parametro su un valore selezionato per ridurre la latenza causata dalle transazioni a lunga esecuzione. Puoi anche utilizzare statement_timeout come misura precauzionale alternativa per i database che non supportano max_slot_wal_keep_size.

  • wal_sender_timeout: imposta questo parametro su 0 (per disattivare il timeout) o su un valore maggiore o uguale a 10 minuti.

Se prevedi di creare più di 10 flussi o il numero di slot di replica logica utilizzati da altre risorse, oltre a quello pianificato, è superiore a 10, assicurati di modificare i seguenti parametri:

  • max_replication_slots: aumenta il valore di questo parametro in base al numero di slot di replica impostato per il database (è necessario uno slot di replica per flusso). Puoi impostare max_replication_slots solo all'avvio del server.

  • max_wal_senders: aumenta il valore di questo parametro in modo che sia maggiore del valore del parametro max_replication_slots. Puoi impostare max_wal_senders solo all'avvio del server.