合并复制 - 发布者从订阅者丢失数据

时间:2012-06-18 21:51:31

标签: sql-server-2005 merge-replication

我有一个使用SQL 2005合并复制的数据库,并且已将数据插入到订阅者中,而这些数据从未转移到发布者。我相信在14天的保留期内发生了一次冲突,我不再看到了。我可以手动将它们添加到发布者中吗?任何想法或指导我一个良好的链接表示赞赏。谢谢。

2 个答案:

答案 0 :(得分:0)

如果冲突发生在当前保留期之前,我认为没有任何魔法能够将其恢复。您是否可以删除订阅并重新创建它(同时手动同步增量)?可能是最安全的行动。

答案 1 :(得分:0)

在我回答之前请注意,以下说明可能非常危险,必须非常小心。这个解决方案对我有用,因为有问题的表只写入一(1)个订户,而不是其他地方。基本上我做的是:

  1. 暂停复制(我实际上已禁用我正在处理的订阅者的复制作业,并在完成后启用它)
  2. 将表的标识插入设置为ON(表中使用自动标识)
  3. 将表更改为 NOCHECK CONSTRAINT repl_identity_range_(此处为某些十六进制值)
  4. 禁用表格的MSmerge_ins_(此处为某些十六进制值)触发器。(确保在完成时启用此功能)!!!
  5. 插入行
  6. 设置Indentity_Insert off
  7. 启用MSmerge_ins_(此处为某些十六进制值)触发器
  8. 将表更改为检查 CONSTRAINT repl_identity_range_(此处为某些十六进制值)
  9. 您可以通过运行sp_help找到repl_identity_range约束的名称。我建议您使用Red Gates数据等工具进行比较,以便在完成后验证确认。根据您的情况,您可能还必须手动将数据插入所有订户。仅供参考 - 我必须在生产数据库上执行此操作,而不会中断最终用户。请谨慎使用。

相关问题