PostgreSQL 10.1 手册_部分 III. 服务器管理_第 31 章 逻辑复制_31.5. 架构-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

PostgreSQL 10.1 手册_部分 III. 服务器管理_第 31 章 逻辑复制_31.5. 架构

简介: 31.5. 架构 31.5.1. 初始快照 逻辑复制首先复制发布者数据库上的数据快照。一旦完成, 发布者的变化就会实时发送给订阅者。订阅者按照发布者提交的顺序应用数据, 以确保任何单个订阅中的发布的事务一致性。

31.5. 架构

逻辑复制首先复制发布者数据库上的数据快照。一旦完成, 发布者的变化就会实时发送给订阅者。订阅者按照发布者提交的顺序应用数据, 以确保任何单个订阅中的发布的事务一致性。

逻辑复制采用类似于物理流式复制的体系结构(请参见 第 26.2.5 节)。它是通过walsender 和apply进程实现的。walsender进程启动WAL的逻辑解码 (在第 48 章中描述),并加载标准的逻辑解码插件 (pgoutput)。该插件将从WAL读取的更改转换为逻辑复制协议 (请参阅第 52.5 节), 并根据发布规范过滤数据。然后使用流式复制协议将数据连续传输到应用工作人员, 应用工作人员将数据映射到本地表,并按照正确的事务顺序应用接收到的各个更改。

订阅者数据库上的应用程序始终以session_replication_role 设置为replica运行,这会对触发器和约束产生通常的影响。

逻辑复制应用程序目前仅触发行触发器,不触发语句触发器。不过, 初始表同步像COPY命令一样执行, 因此触发了INSERT的行和语句触发器。

31.5.1. 初始快照

给现有订阅表中的初始数据做快照,并复制到特殊类型的应用程序的并行实例中。 此过程将创建自己的临时复制槽并复制现有数据。一旦现有数据复制完成, 工作人员进入同步模式,通过使用标准逻辑复制, 流式传输在初始数据复制过程中发生的任何变化, 确保表与主应用程序进入同步状态。一旦完成同步, 表的复制的控制权返回到复制继续正常进行的主应用进程。

本文转自PostgreSQL中文社区,原文链接:31.5. 架构

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章