开发者社区> 德哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PostgreSQL 分区表的逻辑复制(逻辑订阅)

简介:
+关注继续查看

标签

PostgreSQL , 分区表 , 逻辑复制 , 逻辑订阅 , 分区


背景

PostgreSQL 10 引入了内置分区语法,同时引入了逻辑订阅的功能。

《PostgreSQL 10.0 preview 逻辑订阅 - 原理与最佳实践》

逻辑订阅简单来说就是

1、创建pub,

2、将需要订阅的表加入到pub中,

3、在接收端创建订阅sub,指定订阅哪个pub。

4、然后发布的就会解析pub中包含的表的已结束事务产生的WAL,将解析后的RECORD发送给接收端。

5、接收端收到逻辑回放信息,回放。实现增量复制的目的。

那么问题来了,分区表怎么支持的呢?

目前PG的分区表,实际数据是存在分区内的,发布时,不允许对主表发布,只能发布实际包含数据的分区。

https://www.postgresql.org/docs/devel/static/sql-createpublication.html

Only persistent base tables can be part of a publication.

Temporary tables, unlogged tables, foreign tables, materialized views, regular views, and partitioned tables cannot be part of a publication.

To replicate a partitioned table, add the individual partitions to the publication.

目标端,需要定义好同样的分区(猜测应该是这样的,可以试一试验证一下)。

使用EnterpriseDB xDB的复制工具,则可以直接支持分区表的复制。

https://www.enterprisedb.com/docs/en/6.2/repguide/EDB_Postgres_Replication_Server_Users_Guide.1.55.html#

参考

https://wiki.postgresql.org/wiki/Table_partitioning

https://www.postgresql.org/docs/devel/static/sql-createpublication.html

https://www.postgresql.org/docs/10/static/ddl-partitioning.html

https://www.enterprisedb.com/docs/en/6.2/repguide/EDB_Postgres_Replication_Server_Users_Guide.1.55.html#

《PostgreSQL 逻辑订阅 - DDL 订阅 实现方法》

《PostgreSQL 10 流式物理、逻辑主从 最佳实践》

《使用PostgreSQL逻辑订阅实现multi-master》

《PostgreSQL 10.0 preview 功能增强 - 逻辑订阅端worker数控制参数》

《PostgreSQL 逻辑订阅 - 给业务架构带来了什么希望?》

《PostgreSQL 10.0 preview 变化 - 逻辑复制pg_hba.conf变化,不再使用replication条目》

《PostgreSQL 10.0 preview 功能增强 - 备库支持逻辑订阅,订阅支持主备漂移了》

《PostgreSQL 10.0 preview 功能增强 - 逻辑复制支持并行COPY初始化数据》

《PostgreSQL 10.0 preview 逻辑订阅 - 原理与最佳实践》

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

相关文章
PostgreSQL 逻辑同步
本文探讨 概念、用法、发布者、订阅者、复制槽管理、冲突、限制、架构、首次同步、监控、安全性、配置设置、实操(有主键表、无主键表、分区表的同步;列顺序不同、表结构不同等情况下的复制)
0 0
关于PostgreSQL逻辑订阅中的复制状态
关于PostgreSQL逻辑订阅中的复制状态
317 0
PostgreSQL 逻辑复制、增量复制、逻辑订阅、增量订阅中间件 amazonriver - HelloBike开源
标签 PostgreSQL , 逻辑复制 , 流复制 , testdecoding , amazonriver , hellobike 背景 amazonriver 是一个将postgresql的实时数据同步到es或kafka的服务。由hellobike开源。 版本支持 Postgresql 9.4 or later Kafka 0.8 or later Elas
0 0
PostgreSQL 如何实现upsert与新旧数据自动分离
很多业务也行有这样的需求,新的数据会不断的插入,并且可能会有更新。对于更新的数据,需要记录更新前的记录到历史表。 这个需求有点类似于审计需求,即需要对记录变更前后做审计。我以前有写过使用hstore和触发器来满足审计需求的文档,有兴趣的同学可以参考http://blog.163.com/digoa
5542 0
PostgreSQL中1000分区的继承分区表更新失败的原因
之前的一篇博客《PostgreSQL分区表的性能损耗验证》中,遇到1000分区的分区表更新和删除都执行失败(问题3)的问题。经过简单的调查发现原因竟然是OOM导致进程被杀。以下是相关错误消息 1.
1119 0
+关注
德哥
公益是一辈子的事, I am digoal, just do it.
文章
问答
来源圈子
更多
让用户数据永远在线,让数据无缝的自由流动
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
PolarDB PG核心特性介绍
立即下载
PostgreSQL复制原理及高可用集群
立即下载
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final
立即下载