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

简介: 大家好,这里是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同步功能.



相关文章
|
SQL 关系型数据库 Java
【DB吐槽大会】第16期 - PG Standby不支持解析逻辑日志
大家好,这里是DB吐槽大会,第16期 - PG Standby不支持解析逻辑日志
|
SQL Oracle 关系型数据库
【DB吐槽大会】第39期 - PG 物化视图不支持基于log的增量刷新
大家好,这里是DB吐槽大会,第39期 - PG 物化视图不支持基于log的增量刷新
|
存储 Oracle 关系型数据库
【DB吐槽大会】第67期 - PG 存储过程和函数内对自治事务支持不完整
大家好,这里是DB吐槽大会,第67期 - PG 存储过程和函数内对自治事务支持不完整
|
SQL 存储 关系型数据库
【DB吐槽大会】第60期 - PG 只读实例不支持写操作
大家好,这里是DB吐槽大会,第60期 - PG 只读实例不支持写操作
|
SQL 关系型数据库 数据库
【DB吐槽大会】第75期 - PG 不支持索引失效功能
大家好,这里是DB吐槽大会,第75期 - PG 不支持索引失效功能
|
SQL Oracle 关系型数据库
【DB吐槽大会】第49期 - PG 不支持打印慢SQL锁等待信息
大家好,这里是DB吐槽大会,第49期 - PG 不支持打印慢SQL锁等待信息
|
存储 JSON 搜索推荐
【DB吐槽大会】第35期 - “富人”的烦恼?PG 不会自动选择索引类型
大家好,这里是DB吐槽大会,第35期 - “富人”的烦恼?PG 不会自动选择索引类型
|
存储 关系型数据库 数据库
【DB吐槽大会】第53期 - PG 函数和存储过程没有版本管理
大家好,这里是DB吐槽大会,第53期 - PG 函数和存储过程没有版本管理
|
存储 JSON Oracle
【DB吐槽大会】第15期 - PG 没有全局临时表
大家好,这里是DB吐槽大会,第15期 - PG 没有全局临时表
|
弹性计算 关系型数据库 数据库
【DB吐槽大会】第34期 - PG 全局catalog全局可见
大家好,这里是DB吐槽大会,第34期 - PG 全局catalog全局可见