【发布时间】: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