使用debezuim,实现PG同步Oracle
2024-03-22 08:24:29 阅读次数:30
数据库
- 对于bytea类型,debezuim发给kafka的是一个很短的奇怪字符串。使用wal2json直接decode出来的,是完整的数据,但是到了debezuim,就只有很短的字符串了。
- 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的数据,但它不算大对象,大对象是另一种概念。**
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/howard_shooter/article/details/127223573,作者:howard_shooter,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:高手速成|基于Mysql主从复制的读写分离
下一篇:POST @PostMapping接收实体类属性为null