Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 集成传输选择(Oracle和SQL Server)_Sql Server_Database_Oracle_Integration - Fatal编程技术网

Sql server 集成传输选择(Oracle和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

我们有几个系统的后端带有Oracle(A)和SQL Server(B)数据库。我必须将这些系统中的数据整合到新的SQL Server数据库中

诸如此类:

(A) =>|---------------|
      | some software | => SQL Server
(B) =>|---------------|
如果某些软件是:

  • 传输(网络中的A和B系统)

  • 处理业务逻辑(自定义.NET代码)

由于第一点,我需要一些队列软件或类似的东西(如MSMQ、ServiceBroker或其他东西)。另一方面,我可以实现web服务而不是队列

(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部分补充道