我在 Windows 2003 Server 上的两台 SQL Server 2008 SP1 服务器之间进行了事务复制。发现主库和订阅库的部分表存在差异。我已经对记录数进行了手动验证,并且存在一些小的差异。我知道两边之间有延迟,所以不用太担心,但是有一个特定的表无论如何都不会同步(出现新行,但没有出现一些特定的旧行,所以它们看起来像同步后被删除)。
情况是订阅数据库不是只读的,因此应用程序可以读取数据,也可以将数据写入该数据库。
现在我想知道您将使用什么解决方案来同步两侧。我现在能想到两个:
对每篇文章使用 tablediff.exe 实用程序来比较源表和目标表并生成脚本
重新初始化订阅,这样它将使最后一个快照无效并生成一个新快照。
有没有其他解决方案来解决这个问题?
我将分两部分回答这个问题。
首先,如果您想让数据重新同步,那么您应该重新初始化。检查以查看正在更改数据的内容。如果这是一个大表,重新初始化可能需要一段时间。
其次,如果订阅者不是只读的并且您正在尝试进行事务复制,那么您将经常遇到此错误。人、应用程序,任何可以改变几行和繁荣的东西,电子邮件开始飞来。如果你需要双方都能够 CRUD 数据,那么我会使用合并复制。这使双方能够更新数据。