使用debezuim,实现PG同步Oracle
  xaeiTka4h8LY 2024年03月22日 41 0
  1. 对于bytea类型,debezuim发给kafka的是一个很短的奇怪字符串。使用wal2json直接decode出来的,是完整的数据,但是到了debezuim,就只有很短的字符串了。
  2. PG逻辑复制的知识:
    定义publication时,定义要复制的表,及其它过滤细节。
    在接收客户端,定义subcribtion时,定义感兴趣的publication,还有slot。其它的不需要定义。这就有个前提,客户端已经定义好表。这是两个PG节点间的逻辑复制。
    还可以将逻辑变更读出,给自己写的应用程序,例如jdbc就有逻辑复制功能,debezuim就是利用这个功能。jdbc的逻辑复制其实是利用了logical decoding功能,需要一个插件,调用插件时向它传参数,每个插件的参数会不同。它不需要创建subcribtion。
    也可以在pg上以sql使用logical decoding,jdbc和它的原理一样。服务端需要一个publication,此时不需要创建subscription,但是在get change data时需要告诉插件获取哪个publication的变更。
    对于wal2json和pgoutput都是这个套路,只是略有不同。
    逻辑复制有一个限制是,不能捕获大对象变更,但是这里不要误会,表中的bytea列不是大对象,这种列可以存1g的数据,但它不算大对象,大对象是另一种概念。**
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月22日 0

暂无评论

推荐阅读
xaeiTka4h8LY