我们正在运行 SQL Server 2008 R2。我们的操作软件针对该数据库运行,我们将运行访问两个单独数据库的操作软件的两个单独实例。两个数据库都在同一个 SQL Server 上。数据库中有 200 多个表的列表,需要在两个单独的数据库之间同步。可以从任一数据库访问这些表,并且插入/更新/删除必须在两个数据库之间同步。同步需要接近实时发生,每分钟不少于一次。
我知道我可以对触发器进行硬编码,使用 MERGE 来更新表,但这意味着编写 52 (26 x 2) 个单独的触发器,这些触发器对所有细节都进行了硬编码。
我研究了复制,但这似乎更适合一个主表喂养一个子表,而不是双向更新。
我查看了更改跟踪,但并非所有表都定义了 PK。这是供应商的数据库,不是我的。我知道所有的桌子都应该有PK。我不知道我可以在桌子上定义 PK。
我的另一个想法是用同义词替换其中一个表,以便两个系统实际上都在更新同一个表。我对该解决方案的担忧是“破坏”操作系统的可能性。
我刚刚开始研究 Microsoft Sync Framework 以及是否可以选择。
任何想法,建议,方向将不胜感激。
谢谢,戴夫