9.3 9.4 9.5 9.6 10 11 12 13 14 15 Current(16) 17
问题报告 纠错本页面
第 31 章 逻辑复制
上一页 上一级 部分 III. 服务器管理起始页 下一页

第 31 章 逻辑复制

目录

31.1. 发布
31.2. 订阅
31.2.1. 复制槽管理
31.2.2. 示例:设置逻辑复制
31.2.3. 示例:延迟复制槽创建
31.3. 行过滤器
31.3.1. 行过滤规则
31.3.2. 表达式限制
31.3.3. 更新转换
31.3.4. 分区表
31.3.5. 初始数据同步
31.3.6. 组合多行过滤器
31.3.7. 例子
31.4. 列列表
31.4.1. 例子
31.5. 冲突
31.6. 限制
31.7. 架构
31.7.1. 初始快照
31.8. 监控
31.9. 安全性
31.10. 配置设置
31.10.1. 出版商
31.10.2. 订阅者
31.11. 快速设置

逻辑复制是一种基于数据对象的复制标识(通常是主键)复制数据对象及其更改的方法。我们使用术语"逻辑"来与物理复制加以区分,后者使用准确的块地址以及逐字节的复制方式。PostgreSQL两种机制都支持,请见第 27 章。逻辑复制允许在数据复制和安全性上更细粒度的控制。

逻辑复制使用一种发布订阅模型,其中有一个或者更多订阅者订阅一个发布者节点上的一个或者更多发布 。订阅者从它们所订阅的发布拉取数据并且可能后续重新发布这些数据以允许级联复制或者更复杂的配置。

一个表的逻辑复制通常开始于对发布者服务器上的数据取得一个快照并且将快照拷贝给订阅者。一旦这项工作完成,发布者上的更改会被实时发送给订阅者。订阅者以与发布者相同的顺序应用那些数据,这样在一个订阅中能够保证发布的事务一致性。这种数据复制的方法有时候也被称为事务性复制。

逻辑复制的典型用法是:

  • 在一个数据库或者一个数据库的子集中发生更改时,把增量的改变发送给订阅者。

  • 在更改到达订阅者时引发触发器。

  • 把多个数据库联合到单一数据库中(例如用于分析目的)。

  • 在PostgreSQL的不同主版本之间进行复制。

  • 在不同平台上(例如Linux到Windows)的PostgreSQL实例之间进行复制。

  • 将复制数据的访问给予不同的用户组。

  • 在多个数据库间共享数据库的一个子集。

订阅者数据库的行为与任何其他PostgreSQL实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的发布。当订阅者被应用当作只读时,单一的订阅中不会有冲突。在另一方面,如果应用或者对相同表集合的订阅者执行了其他的写动作,冲突可能会发生。


上一页 上一级 下一页
30.6. WAL内部 起始页 31.1. 发布

AltStyle によって変換されたページ (->オリジナル) /