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 逻辑订阅 - 原理与最佳实践》

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
关系型数据库 流计算 PostgreSQL
关于PostgreSQL逻辑订阅中的复制状态
关于PostgreSQL逻辑订阅中的复制状态
3109 0
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的逻辑存储结构
PostgreSQL的逻辑存储结构包括数据库集群、数据库、表空间、段、区、块等。每个对象都有唯一的对象标识符OID,并存储于相应的系统目录表中。集群由单个服务器实例管理,包含多个数据库、用户及对象。表空间是数据库的逻辑存储单元,用于组织逻辑相关的数据结构。段是分配给表、索引等逻辑结构的空间集合,区是段的基本组成单位,而块则是最小的逻辑存储单位。
303 2
【赵渝强老师】PostgreSQL的逻辑存储结构
|
6月前
|
存储 关系型数据库 测试技术
拯救海量数据:PostgreSQL分区表性能优化实战手册(附压测对比)
本文深入解析PostgreSQL分区表的核心原理与优化策略,涵盖性能痛点、实战案例及压测对比。首先阐述分区表作为继承表+路由规则的逻辑封装,分析分区裁剪失效、全局索引膨胀和VACUUM堆积三大性能杀手,并通过电商订单表崩溃事件说明旧分区维护的重要性。接着提出四维设计法优化分区策略,包括时间范围分区黄金法则与自动化维护体系。同时对比局部索引与全局索引性能,展示后者在特定场景下的优势。进一步探讨并行查询优化、冷热数据分层存储及故障复盘,解决分区锁竞争问题。
813 2
|
SQL 监控 关系型数据库
PostgreSQL普通表转换成分区表
如何使用pg_rewrite扩展将普遍表转换成分区表
|
SQL 关系型数据库 数据库
[postgresql]逻辑备份与还原
[postgresql]逻辑备份与还原
167 2
|
关系型数据库 数据库 PostgreSQL
|
存储 人工智能 关系型数据库
postgresql从入门到精通教程 - 第36讲:postgresql逻辑备份
postgresql从入门到精通教程 - 第36讲:postgresql逻辑备份
334 1
|
SQL 关系型数据库 分布式数据库
PolarDB for PostgreSQL逻辑复制问题之逻辑复制冲突如何解决
PolarDB for PostgreSQL是基于PostgreSQL开发的一款云原生关系型数据库服务,它提供了高性能、高可用性和弹性扩展的特性;本合集将围绕PolarDB(pg)的部署、管理和优化提供指导,以及常见问题的排查和解决办法。
|
监控 关系型数据库 API
PostgreSQL 13、14中逻辑复制/解码改进
PostgreSQL 13、14中逻辑复制/解码改进
442 0
|
存储 关系型数据库 分布式数据库
PostgreSQL 14中两阶段提交的逻辑解码
PostgreSQL 14中两阶段提交的逻辑解码
367 0

相关产品

  • 云原生数据库 PolarDB
  • 推荐镜像

    更多