关于同步数据库的很多问题,但我找不到我喜欢的解决方案。
我拥有:我有master
SQL Server数据库,企业版服务器,事先不知道架构。
我需要的是:创建slave
/ replica
数据库然后基于。保留所有约束,键,触发器等。在inserted
db中获取deleted
/ master
数据的增量。无需跟踪更新。在replica
db。
我找到了什么:
Microsoft Sync Framework。将是最佳选择,但它会修改master
db的模式。添加跟踪列,触发器等。我无法修改master
db。
ApexSQL Diff等。缺点:它们需要花钱,我需要将功能构建为dll或可执行文件。它必须开箱即用。
数据库镜像。同步或异步,它实时工作。我需要根据需要随时获取delta。这也是维持这件事的问题。
手工完成,遍历表格树,试图找出正确的数据插入顺序。缺点:我不想重新发明轮子。
我想念的是什么?是否有解决方案/库/包来分析模式并获取新插入的数据而不修改master
db的模式?
UPD
事务复制:由SQL Server快照代理,日志读取器代理和分发代理实现。这是主要的缺点,我需要从代码中做到这一点。无法访问SQL Server本身。 (我可能无法访问更多阅读的功能)
合并复制:将列rowguid添加到每个表,除非该表已经具有带有ROWGUIDCOL属性的数据类型uniqueidentifier的列。我无法修改现有架构,如果可以的话,我会留在Sync Framework上。
恢复事务日志:我不能保证我有任何日志文件。 DB不是我的,我不了解架构。