【问题标题】:SSIS or Sync Framework with Change Tracking具有更改跟踪的 SSIS 或同步框架
【发布时间】:2012-01-17 19:08:32
【问题描述】:

到目前为止,我主要使用 LAMP 应用程序,但有一个项目需要在两个 SQL 2008 服务器之间设置双向同步(一个基于 Web,另一个在防火墙内)。我找到了大量详细信息,但在回答一些基本问题时遇到了问题(下面以粗体显示)。

根据我对这一点的阅读理解:

  • 复制是一种端到端解决方案,可以解决许多常见问题,但不如其他选项灵活。
  • Change Tracking (SQL >= 2008) 可以记录有关数据库事务的信息并将信息存储在系统表中。可以通过标准 SQL 查询访问此信息,并与其他工具结合使用以构建完整的同步解决方案。
  • Sync Framework 是一个可与编程语言(和更改跟踪)结合使用的框架,可提供完整且灵活的同步解决方案。
  • SQL Server Integration Services (SSIS) 通常在将 SQL Server 数据与另一个数据源集成时使用。开发环境易于学习,开发速度快。我相信这也是一个端到端的解决方案,但它也可以与其他编程语言结合使用(创建新任务等)。

基于这些理解,以下是我的解决方案:

我有一些相当复杂的逻辑来解决同步冲突,这排除了复制(合并复制可能能够处理逻辑,但听起来开销会比 SQL 2008 中可用的其他解决方案大得多)。

作为 SQL Server 的新手,我真的很喜欢我所读到的关于使用 SSIS 的易用性,但是我读过的大多数文章/示例表明它主要用于将 SQL Server 与其他数据源集成。 SSIS 是否适合同步解决方案?我还想使用 2008 年变更跟踪记录的数据,我可以通过 SSIS 访问这些数据吗?

另一种选择是使用同步框架和更改跟踪,这将涉及更陡峭的学习曲线。 使用这种组合而不是 SSIS 和变更跟踪有什么好处?

感谢所有我对 MS 同步技术和我的解决方案的理解。

克里斯

【问题讨论】:

  • 在您的命名法中,同步与集成不同吗?期望的最终结果是系统 A 和 B 之间的数据匹配,是吗? SSIS 可以做到这一点。 SSIS 允许使用大多数东西作为数据源。正如您已经注意到的,CDC 数据可以通过标准 SQL 查询进行访问。将所述查询粘贴到适当的源转换中,瞧,它顺着管道流了下来。我没有触及同步框架,这就是为什么这是评论而不是答案
  • @billinkc 感谢您的回复,这让我成功了一半!您完全正确,期望的最终结果是系统之间的数据匹配。

标签: sql-server-2008 ssis microsoft-sync-framework change-tracking


【解决方案1】:

找到了一个很好的总结,解释了何时使用每种技术here

【讨论】:

  • 这里您必须考虑的关键事项之一是防火墙。您愿意开放端口以允许直接访问 SQL 服务器吗?
  • 好点。我们的安全人员查看了 VPN,但最终选择了第 2 层隧道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
相关资源
最近更新 更多