【DB吐槽大会】第33期 - PG 逻辑复制不支持DDL

背景


1、产品的问题点

  • PG 逻辑复制不支持DDL

2、问题点背后涉及的技术原理

  • DDL无法从WAL中解析, 因此逻辑复制不能支持DDL.

3、这个问题将影响哪些行业以及业务场景

  • 使用逻辑复制的业务, 例如单元化部署, 同步数据到其他单元. 同步数据到OLAP业务库, 同步到消息队列, 同步到搜索引擎等.

4、会导致什么问题?

  • 当数据结构发生变化后, 无法捕获这个变化, 使得逻辑同步出现异常.

5、业务上应该如何避免这个坑

  • 统一协调管理DDL, 使用barrier, 在执行DDL前确保下游已同步完所有增量, 然后上下游执行DDL, 并放开barrier, 允许DML操作.
  • 如果是PG到PG的同步, 可以使用event trigger捕获DDL, 存储在表中, 这个表的内容作为DML解析传到下游订阅节点. 下游订阅节点在这个表上创建触发器, 在触发器内完成DDL回放.

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 复杂度增加了, 一般用户搞不定

7、数据库未来产品迭代如何修复这个坑

  • 希望内置DDL同步功能.



上一篇:【DB吐槽大会】第28期 - PG 每次只扩展1个block


下一篇:Appery.io:无编程经验,自己也能DIY移动应用