Datastream legge il write-ahead log (WAL) di PostgreSQL per acquisire e replicare le modifiche ai dati a livello di riga dalle tabelle di origine. Il server di database archivia ogni modifica della transazione nei file WAL. Puoi configurare i parametri di conservazione, timeout e slot di replica di WAL e ottimizzare la crescita dei file di log per evitare una latenza elevata dello stream e l'esaurimento dello spazio di archiviazione.
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. Questo è particolarmente importante per le transazioni a lunga esecuzione, che, in casi estremi, possono far sì che le dimensioni del file WAL occupino l'intero spazio di archiviazione e causino 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 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 stream o se il numero di slot di replica logica utilizzati da altre risorse oltre al numero di stream 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 (è necessario uno slot di replica per stream). Puoi impostaremax_replication_slotssolo all'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 degli stream 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 a lunga esecuzione di grandi dimensioni perché possono aumentare in modo significativo le dimensioni del file WAL.
- Utilizza le tabelle
UNLOGGEDoTEMPORARYdurante le operazioni batch. - Controlla la configurazione del WAL e valuta la possibilità di ridurre la frequenza dei checkpoint. Per saperne di più, consulta Configurazione WAL.
- Controlla se sono presenti operazioni
DELETEdi grandi dimensioni e valuta la possibilità di sostituirle con operazioniTRUNCATE. In questo modo, puoi ridurre in modo significativo i dati dei file WAL, ma devi prestare 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.