PostgreSQL 社区官方版本不支持DDL的逻辑复制,仅支持DML【INSERT、UPDATE、DELETE、TRUNCATE】,且要求表有主键,否则UPDATE和DELETE无法复制(注意:逻辑复制要求wal_level为logical)。
BDR【收费】
pglogical【开源,比较复杂】
pgl_ddl_deploy
本文主要介绍pgl_ddl_deploy插件。
pgl_ddl_deploy该插件可以实现PG逻辑复制中的DDL复制。该插件具有以下特点:
当前最新版本是2.10版,从2.0版本开始,它支持使用本机逻辑复制进行DDL复制(以前依赖于pglogical插件)。
详细信息请查阅:https://github.com/enova/pgl_ddl_deploy
1.1 创建发布
▼▼▼
CREATE PUBLICATION testpub FOR ALL TABLES IN SCHEAM public;
CREATE EXTENSION pgl_ddl_deploy;
1.2 在发布端进行配置
▼▼▼
INSERT INTO pgl_ddl_deploy.set_configs (set_name,include_schema_regex,driver) VALUES(testpub,.*,native::pgl_ddl_deploy.driver);
set_name:发布端的名字,一定要和创建的发布的名称一致
include_schema_regex:提供正则表达式,用来匹配需要同步的schema,它可以将新表自动添加到复制中
driver:选择原生(native)或者pglogical插件
▼▼▼
SELECT pgl_ddl_deploy.deploy(testpub) from pgl_ddl_deploy.set_configs;
返回结果为t,代表启动成功
1.4 相关权限配置
▼▼▼
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直接结果:
源端添加和删除表:
目标端查看结果:
源端插入数据:
目标端查看:【新添加的表的数据不会自动同步到目标端,需要在目标端进行手工刷新】
更多精彩干货分享
点击下方名片关注
IT那活儿
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129911.html
摘要:笔记一个数据库包含多个里包含的下一层逻辑结构就是也包括各种不同里的名可以相同在创建一个新的时,会自动为其创建一个名为的。如果未设置变量,那么会将你创建的所有对象默认放入中。执行就能看到其名称。 PostgreSQL 5.7. Schemas 笔记 https://www.postgresql.org/docs/9.4/ddl-schemas.html A database conta...
摘要:作者谭峰张文升出版日期年月页数页定价元本书特色中国开源软件推进联盟分会特聘专家撰写,国内多位开源数据库专家鼎力推荐。张文升中国开源软件推进联盟分会核心成员之一。 很高兴《PostgreSQL实战》一书终于出版,本书大体上系统总结了笔者 PostgreSQL DBA 职业生涯的经验总结,本书的另一位作者张文升拥有丰富的PostgreSQL运维经验,目前就职于探探科技任首席PostgreS...
阅读 1346·2023-01-11 13:20
阅读 1684·2023-01-11 13:20
阅读 1132·2023-01-11 13:20
阅读 1858·2023-01-11 13:20
阅读 4100·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3597·2023-01-11 13:20