pglogical 2版本限制:
发布者和订阅者节点必须运行 PostgreSQL 9.4+
复制源过滤和冲突检测需要 PostgreSQL 9.5+
支持的功能:
主要版本之间的升级
完整的数据库复制
使用复制集选择性复制表集
在发布者或订阅者端选择性复制表行 (row_filter)
在发布者端选择性复制表列
从多个上游服务器收集/合并数据
支持DDL同步
安装细节:
pglogical 在每个数据库级别上工作,而不是像物理流复制那样在整个服务器级别上工作
一个提供者可以为多个订阅者提供数据,而不会产生额外的磁盘写入开销
一个订阅者可以合并来自多个来源的更改,并通过自动和可配置的冲突解决方案检测更改之间的冲突。
安装:
下载最新版本pglogical 2,下载地址 https://github.com/2ndQuadrant/pglogical.git
解压

源代码安装与使用 PGXS 构建,所以我们在pg12用户下进行编译



配置:
所有节点需要修改参数,支持逻辑解码

pg_hba.conf
必须允许来自本地主机的逻辑复制连接。在 PostgreSQL 9.6 之前,逻辑复制连接是使用replication
关键字。在 PostgreSQL 10 及更高版本中,逻辑复制连接被视为pg_hba.conf
与提供程序数据库的常规连接。
接下来pglogical
必须在所有节点上安装扩展和同步模式:

现在创建提供者节点:

将logcal_schema模式中
的所有表添加到default
复制集中或者还可以创建其他复制集并向其中添加表或者模式,需要添加复制的所有表必须有主键。

一旦设置了提供者节点,订阅者就可以订阅它。首先必须创建订阅者节点:

最后在订阅者节点上,您可以创建订阅,它将在后台启动同步和复制过程:


查看同步状态,状态正常,logcal_schema模式下的所有表就可以同步了

DDL同步,执行后会在两个节点执行DDL操作。






