如何解决发布者和订阅数据之间的差异?

Mar*_*ian 6 replication sql-server-2008

我在两个 SQL Server 2008 SP1 服务器之间有一个事务复制,它们都在 Windows 2003 Server 上。发现主库和订阅库的部分表存在差异。我已经对记录计数进行了手动验证,并且存在细微差异。我知道双方之间存在延迟,所以不用太担心,但是有一个特定的表无论如何都不会同步(新行出现,但一些特定的旧行没有出现,所以它们看起来像同步后删除)。

情况是订阅数据库不是只读的,因此应用程序可以读取数据,也可以向该数据库写入数据。

现在我想知道您将使用哪些解决方案来同步双方。我现在能想到两个:

  • 对每篇文章使用 tablediff.exe 实用程序来比较源表和目标表并生成脚本

  • 重新初始化订阅,这样它就会使上一个快照无效并生成一个新快照。

有没有其他解决方案来解决这个问题?

Sql*_*hes 3

我将分两部分回答这个问题。

首先,如果您想让数据恢复同步,那么您应该重新初始化。检查看看是什么改变了数据。如果这是一个大表,重新初始化可能需要一段时间。

其次,如果订阅者不是只读的并且您正在尝试进行事务复制,那么您将经常遇到此错误。人、应用程序,任何可以改变几行和繁荣的东西,电子邮件开始飞来。如果你需要双方都能够 CRUD 数据,那么我会使用合并复制。这使得双方能够更新数据。