Datastream utilise le journal des transactions WAL (Write Ahead Log) de PostgreSQL pour lire les flux PostgreSQL. Le journal est stocké dans des fichiers WAL sur le serveur de base de données. Chaque enregistrement du journal WAL représente une modification unique apportée aux données réelles dans l'une des tables de la base de données.
Définir des paramètres de configuration pour les fichiers WAL PostgreSQL
Nous vous recommandons d'appliquer les paramètres de configuration suivants à votre base de données PostgreSQL :
max_slot_wal_keep_size: définissez ce paramètre (disponible uniquement pour PostgreSQL 13 et versions ultérieures) afin de limiter la quantité de stockage utilisée par l'emplacement de réplication. C'est particulièrement important pour les transactions de longue durée qui, dans des cas extrêmes, peuvent entraîner une taille de fichier WAL occupant tout l'espace de stockage et provoquer le plantage de la base de données.statement_timeout: définissez ce paramètre sur une valeur sélectionnée pour réduire la latence causée par les transactions de longue durée. Vous pouvez également utiliserstatement_timeoutcomme mesure de précaution alternative pour les bases de données qui ne sont pas compatibles avecmax_slot_wal_keep_size.wal_sender_timeout: définissez ce paramètre sur0(pour désactiver le délai avant expiration) ou sur une valeur supérieure ou égale à 10 minutes.
Si vous prévoyez de créer plus de 10 flux ou si le nombre d'emplacements de réplication logique utilisés par d'autres ressources en plus du nombre de flux prévus dépasse 10, veillez à modifier les paramètres suivants :
max_replication_slots: augmentez la valeur de ce paramètre en fonction du nombre d'emplacements de réplication définis pour votre base de données (vous avez besoin d'un emplacement de réplication par flux). Vous ne pouvez définirmax_replication_slotsqu'au démarrage du serveur.max_wal_senders: augmentez la valeur de ce paramètre afin qu'elle soit supérieure à celle du paramètremax_replication_slots. Vous ne pouvez définirmax_wal_sendersque lorsque vous démarrez le serveur.
Optimiser les fichiers journaux WAL
Pour éviter une latence élevée de vos flux et une croissance rapide de la taille des fichiers journaux WAL lors de la réplication de données à partir d'une source PostgreSQL, envisagez d'appliquer les précautions suivantes :
- Évitez les opérations de longue durée volumineuses, car elles peuvent augmenter considérablement la taille de votre fichier WAL.
- Utilisez les tables
UNLOGGEDouTEMPORARYlors des opérations par lot. - Vérifiez votre configuration WAL et envisagez de réduire la fréquence des points de contrôle. Pour en savoir plus, consultez Configuration WAL.
- Recherchez les opérations
DELETEvolumineuses et envisagez de les remplacer par des opérationsTRUNCATE. Cela peut réduire considérablement les données des fichiers WAL. Toutefois, vous devez être prudent, car Datastream ne réplique pas les opérationsTRUNCATE.
Étape suivante
- En savoir plus sur PostgreSQL en tant que source
- Découvrez comment configurer une base de données PostgreSQL source.