处理主动-主动复制中的冲突 - Amazon Relational Database Service

处理主动-主动复制中的冲突

pgactive 扩展适用于每个数据库,而不是每个集群。使用 pgactive 的每个数据库实例都是一个独立的实例,可以接受来自任何来源的数据更改。将更改发送到数据库实例时,PostgreSQL 会在本地提交更改,然后使用 pgactive 将更改异步复制到其它数据库实例。当两个 PostgreSQL 数据库实例几乎同时更新同一记录时,可能会发生冲突。

pgactive 扩展提供了冲突检测和自动解决机制。它跟踪在这两个数据库实例上提交事务的时间戳,并自动应用带有最新时间戳的更改。pgactive 扩展还会记录 pgactive.pgactive_conflict_history 表中发生冲突的时间。

pgactive.pgactive_conflict_history 会继续增加。您可能需要定义清除策略。可以通过定期删除一些记录或为此关系定义分区方案(然后分离、删除、截断感兴趣的分区)来完成此操作。要定期实施清除策略,一种选择是使用 pg_cron 扩展。请参阅 pg_cron 历史记录表示例的以下信息:使用 PostgreSQL pg_cron 扩展安排维护计划