同步SQL Server数据库,获取delta以进行更新

时间:2014-11-18 16:42:12

标签: sql-server database synchronization

关于同步数据库的很多问题,但我找不到我喜欢的解决方案。

我拥有:我有master SQL Server数据库,企业版服务器,事先不知道架构。

我需要的是:创建slave / replica数据库然后基于。保留所有约束,键,触发器等。在inserted db中获取deleted / master数据的增量。无需跟踪更新。在replica db。

中插入此delta

我找到了什么:

  1. Microsoft Sync Framework。将是最佳选择,但它会修改master db的模式。添加跟踪列,触发器等。我无法修改master db。

  2. 的模式
  3. ApexSQL Diff等。缺点:它们需要花钱,我需要将功能构建为dll或可执行文件。它必须开箱即用。

  4. 数据库镜像。同步或异步,它实时工作。我需要根据需要随时获取delta。这也是维持这件事的问题。

  5. 手工完成,遍历表格树,试图找出正确的数据插入顺序。缺点:我不想重新发明轮子。

  6. 我想念的是什么?是否有解决方案/库/包来分析模式并获取新插入的数据而不修改master db的模式?

    UPD

    事务复制:由SQL Server快照代理,日志读取器代理和分发代理实现。这是主要的缺点,我需要从代码中做到这一点。无法访问SQL Server本身。 (我可能无法访问更多阅读的功能)

    合并复制:将列rowguid添加到每个表,除非该表已经具有带有ROWGUIDCOL属性的数据类型uniqueidentifier的列。我无法修改现有架构,如果可以的话,我会留在Sync Framework上。

    恢复事务日志:我不能保证我有任何日志文件。 DB不是我的,我不了解架构。

0 个答案:

没有答案