SQL2008复制损坏数据问题

SQL2008复制损坏数据问题

我们采用了 SQL 2000 数据库。进行了光速备份。在 SQL 2008 主动/被动群集上恢复。然后设置复制以将数据复制回 SQL 2000。因此 2008 是发布者/分发者,而 2000 正在进行拉取订阅。一切运行良好,只是我们偶尔会在订阅者的 varchar/text 字段中收到损坏的数据。

例如,我们有一张包含 4500 条记录的表。当我们运行此语句时:

update MedstaffProvider set Notes = 'Cell Phone: 360.123.4567   Answering Service: 360.123.9876'
where LastName = 'smith'

2008 年数据库中的记录按预期更新。但在订阅者数据库中,我们会在注释字段中看到乱码:

óPÌ[1]    T       $Oé[1]   ð²ñ.  K 

以下是我们所知的信息:

  • 这是可重复的,这意味着我们可以整天运行相同的查询并得到相同的乱码。如果您稍微修改更新语句,数据就会被很好地复制。
  • 两个数据库的排序规则相同。
  • 到目前为止,我们仅检测到 text/varchar 字段的问题。(上面的 notes 字段是文本)。
  • 表中只有一条或两条记录受到影响。
  • 2000/2008 中的表结构看起来相同。我们没有做任何更改。

我们找到了一个可以解决这个问题的解决方案。基本上,如果我们在 2008 年重新创建表(例如 MedStaffProvider2),然后插入所有数据。删除原始表。将表重命名为其原始名称。再次设置复制。然后运行完全相同的更新语句,它就会按预期工作。

有人知道这里可能发生了什么吗?或者我们可以使用其他技术来解决这个问题吗?我找到了解决方案,但真的很想知道为什么会发生这种情况。

答案1

如果您在分发数据库和订阅数据库上运行 SQL Profiler,您是否会同时在分发数据库和订阅数据库上看到损坏的数据,还是只在订阅数据库上看到损坏的数据?

您是否尝试过在发布者/分发者上运行分发代理?

答案2

SQL Server 2008 是否因为 unicode 或类似的东西而改变了处理某些字段的方式?

本指南可能会提供一些指导。也许您在迁移过程中忽略了某些内容?

編輯:是的本文指出可能导致此现象的任何原因?

相关内容