Datastream utilizza il log delle transazioni WAL (Write Ahead Log) di PostgreSQL per leggere i flussi PostgreSQL. Il log viene memorizzato nei file WAL sul server di 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 di 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 utilizzato dallo slot di replica. Ciò è particolarmente importante per le transazioni di lunga durata che, in casi estremi, possono portare alla dimensione del file WAL a occupare l'intero spazio di archiviazione e al blocco del database.statement_timeout: imposta questo parametro su un valore selezionato per ridurre la latenza causata da transazioni di lunga durata. Puoi anche utilizzarestatement_timeoutcome misura precauzionale alternativa per i database che non supportanomax_slot_wal_keep_size.wal_sender_timeout: imposta questo parametro su0(per disattivare il timeout) o su un valore maggiore o uguale a 10 minuti.
Se prevedi di creare più di 10 flussi o se il numero di slot di replica logica utilizzati da altre risorse, oltre 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 tuo database (hai bisogno di uno slot di replica per stream). Puoi impostaremax_replication_slotsall'avvio del server.max_wal_senders: aumenta il valore di questo parametro in modo che sia maggiore del valore del parametromax_replication_slots. Puoi impostaremax_wal_senderssolo quando avvii il server.
Ottimizza i file di log WAL
Per evitare un'elevata latenza dei flussi e una rapida crescita delle dimensioni dei file di log WAL durante la replica dei dati da un'origine PostgreSQL, valuta la possibilità di applicare le seguenti precauzioni:
- Evita operazioni di lunga durata di grandi dimensioni perché possono aumentare in modo significativo le dimensioni del file WAL.
- Utilizza le tabelle
UNLOGGEDoTEMPORARYdurante le operazioni batch. - Controlla la configurazione WAL e valuta la possibilità di ridurre la frequenza dei checkpoint. Per ulteriori informazioni, consulta la sezione Configurazione WAL.
- Controlla le operazioni
DELETEdi grandi dimensioni e valuta la possibilità di sostituirle con operazioniTRUNCATE. In questo modo, puoi ridurre significativamente i dati dei file WAL, ma devi fare attenzione perché Datastream non replica le operazioniTRUNCATE.
Passaggi successivi
- Scopri di più su PostgreSQL come origine.
- Scopri di più sulla configurazione di un database PostgreSQL di origine.