gpt4 book ai didi

sql-server - 集成传输选择(Oracle + SQL Server)

转载 作者:搜寻专家 更新时间:2023-10-30 20:45:48 25 4
gpt4 key购买 nike

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

类似的东西:

(A) =>|---------------|
| some software | => SQL Server
(B) =>|---------------|

一些软件在哪里:

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

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

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

(A) =>|---------------|-------------|
| queue/service | custom code | => SQL Server
(B) =>|---------------|-------------|

问题是:我应该将哪个队列/传输框架用于 Oracle 和 SQL Server 数据库?

如果我可以在 Oracle 和 SQL Server 存储过程中将消息发布到 MSMQ,那就太好了(我可以吗?)

如果我可以在 Oracle 和 SQL Server 存储过程中调用 Web 服务(可以吗?)

如果我可以在 Oracle 和 SQL Server 存储过程中使用类似的东西(到底是什么?),那就太好了

我应该更喜欢什么软件来满足我的要求?

UPD:一些技术规范

这将是一个常规的同步过程。我想每天一次。

延迟并不重要(>0.5-1 小时即可)。

数据量:每个系统每次同步 1-50 MB。

传输时需要加密

最佳答案

我建议创建一个 SSIS 包,在调用时将新数据从服务器 A、B 传输到新服务器。您可以按计划从新服务器启动 SSIS 包,比如每 30 分钟一次。

如果 A 和 B 都是 SQL Server,那么 Service Broker 可以提供非常低的延迟。但由于其中之一是 Oracle,并且没有实时要求,它失去了吸引力。作为旁注,您可以在此处看到使用 Service Broker 的示例 High volume real time contiguous ETL .

作为 SSIS 包进行传输便于维护(您可以相对轻松地修改包),它不需要对现有系统进行侵入性更改,性能非常好,并且有大量的 SSIS 知识-如何在线获取。

出于以下几个原因,我建议不要使用 MSMQ:

  • 当需要事务可靠性时,您必须将所有与 MSMQ 相关的操作都纳入分布式事务(MSSMQ 出队和新服务器上的 SQL 服务器插入/更新之间的 DTC),这将显着降低处理吞吐量
  • 您需要编写相当多的代码行来将 deltagram 消息编码/取消编码并将其切碎到目标系统中(我知道编码很有趣,但 SSIS 更擅长此类工作,并且更易于维护)
  • 每个队列 2GB 的 MSMQ 限制在现实世界中非常小(如果您的流量增加并且您有维护停机时间,很快就会填满)

我担心的真正问题是如何检测 A 和 B 上的变化:当 SSIS 作业每 30 分钟出现一次时,它如何知道哪些数据是新的?特别是,它如何检测删除...

关于sql-server - 集成传输选择(Oracle + SQL Server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3062621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com