Utilizzare i file di log WAL del database PostgreSQL

Panoramica

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

Imposta 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 alle dimensioni del file WAL che occupano l'intero spazio di archiviazione e possono causare l'arresto anomalo del database.

  • statement_timeout: imposta questo parametro su un valore selezionato per ridurre la latenza causata da 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 logici utilizzati da altre risorse in aggiunta al numero di flussi pianificati supera 10, assicurati di modificare i seguenti parametri:

  • max_replication_slots: aumenta il valore di questo parametro, a seconda del numero di slot di replica impostati per il database (è necessario 1 slot di replica per flusso). Puoi impostare solo max_replication_slots 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 quando avvii il server.