9.3 9.4 9.5 9.6 10 11 12
阿里云PostgreSQL 问题报告 纠错本页面

31.3. 冲突

逻辑复制的行为与普通的DML操作类似,因为即使订阅者节点本地更改了数据, 数据也将被更新。如果传入数据违反任何限制,复制将停止。 这被称为冲突。当复制UPDATE 或者DELETE操作时,丢失的数据不会产生冲突,这样的操作将被忽略。

冲突会产生错误,并会停止复制;它必须由用户手动解决。 有关冲突的详细信息可以在订阅者的服务器日志中找到。

解决方案可以通过更改订阅者上的数据来完成,以免它与传入的更改冲突, 或者跳过与现有数据冲突的事务。事务可以通过调用 pg_replication_origin_advance() 函数使用node_name对应订阅名称和位置来跳过。 源的当前位置可以在 pg_replication_origin_status 系统视图中看到。