PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

Chapter 29. 逻辑复制

Table of Contents

29.1. 发布
29.1.1. 发布与复制标识
29.2. 订阅
29.2.1. 复制槽管理
29.2.2. 订阅配置示例
29.2.3. 延迟建槽与手动建槽示例
29.3. 故障转移与逻辑复制槽同步
29.4. 行过滤器
29.4.1. 行过滤规则
29.4.2. 行过滤限制
29.4.3. 行过滤转换
29.4.4. 分区表的行过滤
29.4.5. 初始数据同步阶段的行过滤
29.4.6. 多发布源的行过滤合并
29.4.7. 行过滤示例
29.5. 列列表过滤
29.5.1. 多发布列列表合并
29.5.2. 列列表配置示例
29.6. 生成列复制
29.7. 冲突处理
29.7.1. 插入冲突(目标行已存在)
29.7.2. 更新冲突(目标行不存在)
29.7.3. 更新冲突(主键冲突)
29.7.4. 更新冲突(来源节点不一致)
29.7.5. 删除冲突(目标行不存在)
29.7.6. 删除冲突(来源节点不一致)
29.7.7. 多重唯一约束冲突
29.8. 限制条件
29.9. 架构机理
29.9.1. 初始快照与基线同步
29.10. 监控视图
29.11. 安全性
29.12. 配置参数
29.12.1. 发布端核心配置
29.12.2. 订阅端核心配置
29.13. 大版本升级考量
29.13.1. 准备发布端大版本升级
29.13.2. 准备订阅端大版本升级
29.13.3. 逻辑复制集群升级操作步骤
29.14. 快速搭建示例

逻辑复制(Logical Replication)是一种基于数据对象复制标识(通常为主键)来同步数据及其变更的机制。与物理复制(基于物理数据块偏移量与逐字节 WAL 回放)相比,逻辑复制允许在表乃至字段级别对数据流动与安全策略实施极细粒度的灵活控制。

逻辑复制采用经典的发布(publish)与订阅(subscribe)架构模型:一个或多个订阅节点(subscribers)向发布节点(publisher)上定义的一个或多个发布(publications)订阅数据变更。订阅者从发布者拉取数据流,并可进一步作为发布者向下游继续分发,构建出级联复制、多源汇聚(多对一汇聚报表分析)或跨平台异构同步拓扑。

当表的逻辑复制首次建立时,系统首先对发布端数据表生成静态数据快照,并全量拷贝同步给订阅端(初始表数据同步阶段)。完成初始装载后,发布端后续产生的增量变更流会被实时、按事务提交顺序推送到订阅端并按序应用,严格确保事务级一致性。