有奖谜题:PG里100%会爆的定时炸弹是什么?
别往下看,先猜一下炸弹是什么?
提示:复制。
留言区回复, 正确有机会获得NineData文化衫!NineData(靠谱的数据迁移同步产品, 让每个人用好数据和云)
文中参考文档点击阅读原文打开, 同时推荐2个学习环境:
1、懒人Docker镜像, 已打包200+插件:《最好的PostgreSQL学习镜像》
2、有web浏览器就能用的云起实验室: 《免费体验PolarDB开源数据库》
3、PolarDB开源数据库内核、最佳实践等学习图谱: https://www.aliyun.com/database/openpolardb/activity
第33期吐槽:PG 逻辑复制不支持DDL
1、产品的问题点
PG 逻辑复制不支持DDL
2、问题点背后涉及的技术原理
DDL无法从WAL中解析, 因此逻辑复制不能支持DDL.
3、这个问题将影响哪些行业以及业务场景
使用逻辑复制的业务, 例如单元化部署, 同步数据到其他单元. 同步数据到OLAP业务库, 同步到消息队列, 同步到搜索引擎等.
4、会导致什么问题?
当被逻辑复制订阅的表的数据结构发生变化后, 下游无法捕获这个DDL变化, 使得逻辑同步出现异常中断。
逻辑复制一旦中断,接踵而来的就是WAL日志急剧堆积,catalog系统表垃圾无法回收等问题。
严重可能导致空间耗尽故障。
5、业务上应该如何避免这个坑怎么
统一协调管理DDL, 使用barrier, 在执行DDL前确保下游已同步完所有增量, 然后上下游执行DDL, 并放开barrier, 允许DML操作.
如果是PG到PG的同步, 可以使用event trigger捕获DDL, 存储在表中, 这个表的内容作为DML解析传到下游订阅节点. 下游订阅节点在这个表上创建触发器, 在触发器内完成DDL回放.
6、业务上避免这个坑牺牲了什么, 会引入什么新的问题
复杂度增加了, 一般用户搞不定。
避免膨胀导致管理复杂度增加,DBA压力增加,睡眠质量不好,精子活力下降,影响下一代,进而影响人类命运。
7、数据库未来产品迭代如何修复这个坑
希望内置DDL同步功能.
本期彩蛋-优秀的数据同产品NineData,已解决逻辑复制DDL问题,这是他们的公众号
另外还一个好消息,PG社区年度峰会来了,免费报名中,还有MacBookPro大奖,一起相约杭州吧
文章中的参考文档请点击阅读原文获得.
欢迎关注我的github (https://github.com/digoal/blog) , 学习数据库不迷路.
近期正在写公开课材料, 未来将通过视频号推出, 欢迎关注视频号: