我想向您介绍与 SQL Server 2005 双向复制相关的问题。我需要什么?我的团队负责人希望使用两个数据库之间的双向复制来解决我们的一个问题,每个数据库都由不同的应用程序使用。一个应用程序在表 A 中创建记录,更改应复制到第二个数据库,复制到表 A 的副本中。当第二个服务器上的数据发生更改时,这些更改必须传播回第一个服务器。我正在尝试在一台运行 SQL Server 2005 的服务器上实现两个数据库之间的双向事务复制。我设法使用脚本进行了设置,建立了 2 个发布和 2 个带有环回检测的只读订阅。创建分发数据库,启用两个数据库上的发布。发行商和出版商都起来了。我们正在使用一些规则来控制哪些记录将被复制,因此我们需要在复制期间调用我们的自定义存储过程。因此,文章设置为使用更新、插入和删除自定义存储过程。
到目前为止一切顺利,但是?
一切正常,正在复制更改,直到同时在两个表上完成更新或在复制更改之前(这大约需要 3-6 秒)。然后,两条记录都以不同的值结束。
UPDATE db1.dbo.TestTable SET Col = 4 WHERE ID = 1
UPDATE db2.dbo.TestTable SET Col = 5 WHERE ID = 1
结果:
db1.dbo.TestTable COL = 5
db2.dbo.TestTable COL = 4
但我们希望最后的变化赢得复制。请问有什么办法可以解决我的问题吗?如何确保两条记录中的值相同?还是有比这种复制更简单的解决方案?
我可以提供我正在使用的示例复制脚本。
我期待着你的想法,
Mirek