pglogical
v2 - PostgreSQL的新一代逻辑复制!
pglogical是一个完全作为PostgreSQL扩展实现的逻辑复制系统。完全集成,它不需要触发器或外部程序。这种物理复制的替代方法是使用发布/订阅模型复制数据以进行选择性复制的一种高效方法。
pglogical 2有哪些新功能?
pglogical 2.2版本带来了新功能,可以用于更多的使用案例,以及下面列出的几个错误修复和改进:
- 支持PG 10
- 与pglogical 1.x提供程序的兼容性得到改进
- 改进了错误报告
- 对源端进行行筛选
- 对源端进行列筛选
- 延迟复制
- MS Windows支持(仅限源代码)
- 能够将物理备用数据转换为逻辑复制
- 可以将PostgreSQL的数据发布到Postgres-XL目标端
- 大型INSERT / COPY事务的复制性能大大提高
- 改进的内存管理。
有关更全面的列表,请参阅 发行说明。
pglogical场景
下面的图表描述了数据库管理员能够使用pglogical执行的功能。
迁移和升级
以几乎为零的停机时间迁移和升级PostgreSQL
累加
将来自分片数据库服务器的更改累积到数据仓库中
向外扩展
将全部或选定的数据库表复制到集群中的其他节点
整合
将数据库实时变化应用到其他系统
可用性
(发布pglogical 2.2 - 2018年3月20日)
pglogical可用于PostgreSQL 9.4 - 10.它可以通过2ndQuadrant的apt和yum软件库用于Debian和Red Hat系列(RHEL,CentOS和Fedora)。您可以使用标准的apt和yum软件包管理器来与您的PostgreSQL实例一起安装pglogical。
你也可以访问 pglogical的github仓库。
pglogical是完全开源的,在PostgreSQL许可证下发布,版权由PostgreSQL开发小组授权。
pglogical提供了什么好处?
- 同步复制
- 延迟复制
- 可配置冲突解决方案
- 能够将物理备用数据转换为逻辑复制
- 可以将PostgreSQL的数据发布到Postgres-XL目标端
- 序列可以被复制
- 没有触发器意味着减少源端的写入负载
- 不重新执行SQL意味着降低了目标端服务器的开销和延迟
- 目标端未处于热备份恢复状态,因此您可以使用临时表,无日志的表或普通表
- 无需取消查询以允许副本继续重演
- 目标端可以有不同的用户和安全性,不同的索引,不同的参数设置
- 仅复制一个数据库或或包含一些表的集合
- 在支持的PostgreSQL版本或体系结构中复制,允许低或零宕机升级
- 将多个上游服务器集成到单个目标端中以实现更改累积
pglogical如何工作?
pglogical利用了由2ndQuadrant添加的逻辑解码功能(自PostgreSQL 9.4开始可用)。PostgreSQL 9.5及更新版本的pglogical工作速度更快,源端和目标端的开销都较低。
pglogical在很大程度上依赖BDR开发引入的一部分功能,其中包括:
- 逻辑解码
- 复制槽
- 静态后台工作
- 复制起点
- 提交时间戳
- 逻辑WAL消息
翻译自:https://www.2ndquadrant.com/en/resources/pglogical/
By 徐云鹤