Documentation PostgreSQL 14.22 » Administration du serveur » Réplication logique » Conflits

Précédent | Niveau supérieur | Suivant
31.2. Abonnement | Sommaire | 31.4. Restrictions

## 31.3. Conflits

La réplication logique se comporte de la même manière pour les opérations DML dans le sens où les données seront mises à jour même si la modification a été faite en local sur la base abonnée. Si les données entrantes entrainent des violations de contrainte d'intégrité, la réplication s'arrête. Cela sera référencé comme un conflit. Lorsque l'on réplique des opérations `UPDATE` ou `DELETE`, les données manquantes ne produiront pas de conflit et des opérations de la sorte seront simplement évitées.

Lorsqu'un conflit entraine une erreur, cela stoppe la réplication ; Le conflit devra être résolu manuellement par un utilisateur. Des informations détaillées concernant le conflit seront disponibles dans les journaux d'erreurs de l'instance abonnée.

La résolution peut être réalisée, soit en changeant les données sur la base abonnée pour qu'elles ne soient plus en conflit avec les données entrantes ou en évitant les transactions qui sont en conflit avec les données existantes. La transaction peut être évitée en utilisant la fonction `pg_replication_origin_advance()` avec `node_name` pointant sur le nom de l'abonnement, ainsi que la position. La position courante d'origine peut être consultée dans la vue système `pg_replication_origin_status`.