第 31 章 逻辑复制

目录

31.1. 发布
31.2. 订阅
31.2.1. 复制槽管理
31.3. 冲突
31.4. 限制
31.5. 架构
31.5.1. 初始快照
31.6. 监控
31.7. 安全
31.8. 配置设置
31.9. 快速设置

逻辑复制是根据复制标识(通常是主键)复制数据对象及其更改的一种方法。 我们使用术语逻辑与物理复制相比,它使用确切的块地址和逐字节复制。 PostgreSQL同时支持这两种机制,请参阅第 26 章。 逻辑复制允许对数据复制和安全性进行精细控制。

逻辑复制使用发布订阅模型, 其中一个或多个订阅者订阅发布者 节点上的一个或多个发布。 订阅者从他们订阅的发布中提取数据, 并可能随后重新发布数据以允许级联复制或更复杂的配置。

一个表的逻辑复制通常开始于发布者数据库上的数据快照并将其复制到订阅者。 一旦完成,发布者的变化就会实时发送给订阅者。订阅者按照与发布者相同的顺序应用数据, 以保证单个订阅内的发布的事务一致性。这种数据复制方法有时被称为事务复制。

典型的逻辑复制用例有:

订阅者数据库的行为与任何其他PostgreSQ实例的行为相同, 可以通过定义其自己的发布来用作其他数据库的发布者。 当订阅者被应用程序视为只读时,将不会有单个订阅的冲突。 但是,如果应用程序或其他订阅者对同一组表执行其他写操作,则可能会产生冲突。