oracle数据变更获得方法

最近做项目,需将DB数据实时到kafka中,甲方使用第三方商用产品,还总有bug,甲方很满足,无语,自己简单看了下,原来只对DCN有印象,下面主要讲下几个技术的区别,也参考了几个文章会贴出来和大家分享


oracle有几种获得变更数据的技术


trigger


DCN(data change notify)


CDC(change data capture)


oracle stream


trigger大家都熟悉,肯定都知道它对DB本身的影响也一定很大


DCN:它主要是用于通知客户端数据有变化,内部相当于一个队列,队列里存放的是rowid,获得rowid用户自己获得新数据,当然它本身还提供很多其他信息,如Commit SCN,日期等


CDC


CDC有两个模式:同步和异步。两种模式的实现机制是截然不同的。同步CDC主要是采用触发器记录新增数据,基本能够做到实时增量抽取。而异步CDC则是通过分析已经commit的日志记录来得到增量数据信息,有一定的时间延迟,CDC中将系统分为两个角色:发布者和订阅者。发布者主要负责捕获增量数据,订阅者则将增量数据传递给实际应用。这些任务都可以通过oracle提供的PL/SQL包实现,CDC还有几种不同的方式,适用不同场景,下面的参考链接有介绍。


oracle stream


oracle stream与CDC不同的一点是,它本身直接同步数据到其他DB,而CDC只是让你获得数据变化信息,同步到哪里你自己实现。


参考链接


https://blog.csdn.net/awenzhangc/article/details/7974162


https://code-examples.net/zh-CN/q/4298b


版权声明:本文为chuanzhongdu1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。