Sql server 集成传输选择(Oracle和SQL Server)
我们有几个系统的后端带有Oracle(A)和SQL Server(B)数据库。我必须将这些系统中的数据整合到新的SQL Server数据库中 诸如此类:Sql server 集成传输选择(Oracle和SQL Server),sql-server,database,oracle,integration,Sql Server,Database,Oracle,Integration,我们有几个系统的后端带有Oracle(A)和SQL Server(B)数据库。我必须将这些系统中的数据整合到新的SQL Server数据库中 诸如此类: (A) =>|---------------| | some software | => SQL Server (B) =>|---------------| 如果某些软件是: 传输(网络中的A和B系统) 处理业务逻辑(自定义.NET代码) 由于第一点,我需要一些队列软件或类似的东西(如MSMQ、Servic
(A) =>|---------------|
| some software | => SQL Server
(B) =>|---------------|
如果某些软件是:
- 传输(网络中的A和B系统)
- 处理业务逻辑(自定义.NET代码)
(A) =>|---------------|-------------|
| queue/service | custom code | => SQL Server
(B) =>|---------------|-------------|
问题是:我应该在Oracle和SQL Server数据库中使用哪个队列/传输框架
如果我可以在Oracle和SQL Server存储过程中向MSMQ发布消息,那就太好了(可以吗?)
如果我可以在Oracle和SQL Server存储过程中调用web服务,那就太好了(可以吗?)
如果我能在Oracle和SQL Server存储过程中使用类似的东西(具体是什么?)
我应该选择什么软件来满足我的需求
UPD:一些techspec
这将是一个常规的同步过程。我想每天一次
延迟不重要(可以大于0.5-1小时)
数据量:每个系统每次同步1-50 MB
传输时需要加密。我建议创建一个SSIS包,在调用时将新数据从服务器A、B传输到新服务器。您可以按计划从新服务器启动SSIS包,比如每30分钟一次 如果A和B都是SQL Server,那么ServiceBroker将有意义,以提供非常低的延迟。但由于其中之一是Oracle,并且没有实时性要求,它失去了吸引力。作为补充说明,您可以在这里看到一个使用ServiceBroker的示例 以SSIS包的形式进行传输有利于维护(您可以相对轻松地修改包),它不需要对现有系统进行侵入性更改,性能非常好,而且在线提供大量SSIS专有技术 出于以下几个原因,我建议不要使用MSMQ:
- 当需要事务可靠性时,您必须将所有与MSMQ相关的操作纳入分布式事务(MSMQ出列和新服务器上的SQL server插入/更新之间的DTC),这将显著降低处理吞吐量
- 您需要拿出相当多的代码行来对deltagram消息进行封送/解封,并将其分解到目标系统中(我知道编码很有趣,但SSIS在这类工作中做得更好,而且更易于维护)
- 在现实世界中,每个队列2GB的MSMQ限制非常小(如果您的流量增加,并且您有维护停机时间,则会很快填满)
我担心的真正问题是如何检测A和B上的更改:当SSIS作业每30分钟出现一次时,它如何知道哪些数据是新的?特别是,它如何检测删除…我们谈论的是什么容量/吞吐量/延迟?这是一次性任务还是需要持续实时执行的任务?Remus Rusanu,David Lively-techspec部分补充道