我需要将来自Server 2008 R2的数据实时推送到Oracle11g。提出的解决方案是采用CDC和SSIS。
据我所知,CDC就像一个系统表,它捕获已注册表中的更改。SSIS更像是一个ETL工具。
我理解的是,某人或进程需要执行SSIS,以便从CDC中提取数据,然后将其推送到Oracle表中。
我们需要安排吗??或者还有其他一些机制,当数据是CDC表时,就会自动调用它。
如果需要调度,那么它就不是实时的(更像是接近实时的)。
发布于 2014-08-27 01:14:36
实时延迟有多大?0秒钟?对于SQL > Oracle,这是不可能的。
1秒可以吗?五分钟怎么样?
您需要接受某种延迟,您将永远无法从SQL到Oracle获得实时。我使用的是一个将数据从许多系统(包括Server)传输到Oracle的系统,但它的延迟时间约为10分钟。它应用了在最后十分钟中发现的所有变化。这可能是可以改进的,但实际上并没有要求。
在回答您的问题时,是的,有些东西必须称为调度SSIS (可能是调度程序)。
从技术上讲,您可以从表触发器调用SSIS包,这样它就可以立即运行,从而进行更改,但是一个包运行所需的时间是对表进行更改所需的1000倍。
因此,实际上,您必须在源端接受一些更改队列,而在目标上接受一些更改队列。
如果您需要的延迟要少得多,您应该考虑队列类型设置(不涉及SSIS),其中SQL Server更改被发布到Oracle端的某种队列中,并由Oracle处理
若要减少Server源上的负载,请使用本机Server http://technet.microsoft.com/en-us/library/bb522489(v=sql.105).aspx,而不是手动创建触发器和日志表。
无论您使用何种机制将更改的数据传输到订阅服务器(计划的SSIS,发送到队列.不管怎么说),影响是一样的。SSIS不会给您带来任何性能好处。
https://stackoverflow.com/questions/25517337
复制相似问题