Oracle Streams和Change Data Capture有什么区别?

时间:2008-11-07 17:10:27

标签: oracle cdc advanced-queuing change-data-capture oracle-streams

有几种类似的Oracle技术 - Oracle Streams,Oracle Change Data Capture和Database Change Notification。

这些之间有什么区别?

它们与Oracle Advanced Queuing有关吗?

2 个答案:

答案 0 :(得分:9)

Oracle CDC就是捕获数据库表中的更改,更改存储在特殊的Oracle表中。 CDC操作有两种模式:异步(基于Java)或同步(基于数据库触发器,更多性能开销)。

Oracle Streams位于Oracle CDC之上,它是一种完整的传输机制(例如通过HTTP),用于2台服务器之间的数据同步。它基于Oracle Advanced Queues技术,专为高性能和可靠性而设计。

Oracle CDC和Streams通常用于Oracle数据库服务器之间的数据同步...使用Oracle CDC,您不必使用Oracle Streams,例如:您可以编写自己的数据导出例程来创建平面文件,以便在2个DB服务器之间进行同步,而对于Streams,您必须在2个服务器之间建立网络链接。

数据库更改通知又是另一回事,它不用于服务器到服务器的同步,而是用于服务器通知客户端的结果集更改,主要是在客户端数据缓存的上下文中。

答案 1 :(得分:0)

我想补充一点,为了在系统之间进行同步,您可以通过组合Streams和CDC发布机制来实现异步模式。如果您选择不为此目的使用Streams,您最终将使用同步模式(我认为它是通过触发器)为每个事务增加一点额外开销。