暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

pglogical 2 支持DDL同步的逻辑复制

PostgreSQL数据库工作学习随笔 2022-03-03
1353

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操作。



文章转载自PostgreSQL数据库工作学习随笔,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论