PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 16.5 » Administration du serveur » Réplication logique » Paramètres de configuration

31.10. Paramètres de configuration #

La réplication logique requiert de nombreuses configurations pour fonctionner. La plupart des options ne sont pertinentes que d'un côté de la réplication. Cependant, max_replication_slots est utilisée aussi bien sur le publieur que sur l'abonné, mais a une différente signification pour chacun.

31.10.1. Publieurs #

wal_level doit être mis à logical.

max_replication_slots doit être mis au moins au nombre d'abonnements attendus de se connecter, plus une réserve pour la synchronisation des tables.

max_wal_senders doit être mis à au moins la même valeur que max_replication_slots, plus le nombre de réplicas physiques qui sont connectés en même temps.

Le walsender de réplication logique est aussi impacté par wal_sender_timeout.

31.10.2. Abonnés #

max_replication_slots doit être mis à au moins le nombre d'abonnements qui seront ajoutés à l'abonné, plus une réserve pour la synchronisation des tables.

max_logical_replication_workers doit être mis à au moins le nombre d'abonnements (pour les processus apply leader), plus une réserve pour les processus de synchronisation des tables et les processus apply parallèles.

max_worker_processes peut être ajusté pour accommoder les processus de réplication, au moins (max_logical_replication_workers 1). Notez que certaines extensions et requêtes parallèles puisent aussi des slots de processus dans max_worker_processes.

max_sync_workers_per_subscription contrôle la quantité de parallélisme lors de la copie initiale des données lors de l'initialisation de l'abonnement ou quand des nouvelles tables sont ajoutées.

max_parallel_apply_workers_per_subscription contrôle la quantité de parallélisme pour le flux des transaction en cours avec le paramètre d'abonnement streaming = parallel.

Les processus de réplication logique sont aussi affectés par wal_receiver_timeout, wal_receiver_status_interval et wal_retrieve_retry_interval.