1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

PostgreSQL实现DDL逻辑复制

介绍

作为本际云服务器推荐网的小编小本本,今天给大家分享PostgreSQL实现DDL逻辑复制的内容。PostgreSQL社区官方版本不支持DDL的逻辑复制,但是有第三方的插件可以做到DDL复制,其中我们介绍的是pgl_ddl_deploy插件。

PostgreSQL实现DDL逻辑复制

特点

pgl_ddl_deploy插件具有以下特点:

  • 任何DDLSQL语句都可以直接传播给订阅者
  • 表可以在创建时自动添加到复制中
  • 支持过滤,可以选择仅复制某些schema
  • 可以选择以锁定安全的方式在订阅服务器上进行部署ALTER TABLE语句
  • 可以由子命令标签过滤
  • 当前最新版本是2.10版,从2.0版本开始,它支持使用本机逻辑复制进行DDL复制(以前依赖于pglogical插件)

部署流程

安装需要在源端和目标端都需要进行安装:

tar -xzf pgl_ddl_deploy.tar.gz
cd pgl_ddl_deploy
make
make install

发布端配置:

  1. 创建发布

    CREATE PUBLICATION testpub FOR ALL TABLES IN SCHEMA public;
    
  2. 创建扩展

    CREATE EXTENSION pgl_ddl_deploy;
    
  3. 配置

    INSERT INTO pgl_ddl_deploy.set_configs(set_name, include_schema_regex, driver)
    VALUES(testpub, '.*', native::pgl_ddl_deploy.driver);
    
  4. 开启DDL复制

    SELECT pgl_ddl_deploy.deploy(testpub) from pgl_ddl_deploy.set_configs;
    
  5. 权限配置

    SELECT pgl_ddl_deploy.add_role(testpub) from pg_roles where rolname = 'replic';
    

目标端配置

CREATE EXTENSION pgl_ddl_deploy;
CREATE SUBSCRIPTION testsub
CONNECTION 'host=PG-1 port=5432 user=replic password=replic dbname=test'
PUBLICATION testpub;

实战操作

源端执行ALTER:

源端执行ALTER

目标查看ALTER直接结果:

目标查看ALTER直接结果

源端添加和删除表:

源端添加和删除表

目标端查看结果:

目标端查看结果

源端插入数据:

源端插入数据

目标端查看:

目标端查看

注意:新添加的表的数据不会自动同步到目标端,需要在目标端进行手工刷新。

更多精彩干货分享,关注本际云服务器推荐网,IT那活儿等你来!

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6033.html