none
合并进程无法更新订阅列表 违反了 UNIQUE KEY 约束 'unique_pubsrvdb'。不能在对象 'dbo.sysmergesubscriptions' 中插入重复键 RRS feed

  • 问题

  • 我有四台发布服务器,创建了上百个订阅。在搭建这套复制分发数据库系统之前进行了反复测试,创建发布,删除发布,创建订阅,删除订阅,直到一切准备就绪。后来,慢慢建立了上百个订阅。
     有一天,我删除订阅时出错了。尝试各种方法都没有作用。于是,我尝试着从sysmergesubscriptions中删除,即而发现有一些记录是当时测试时建的订阅,现在已经过时,无用了。就手工把它们删除了。接着,我看到sysmergepublications 中有测试时创建的发布,也就随手删除了。
     删除后不久便出现了异常情况,现在的订阅纷纷报错:
    “合并进程无法更新订阅列表。 (源: MSSQL_REPL,错误号: MSSQL_REPL-2147201010)
    获取帮助: http://help/MSSQL_REPL-2147201010
    违反了 UNIQUE KEY 约束 'unique_pubsrvdb'。不能在对象 'dbo.sysmergesubscriptions' 中插入重复键。 (源: MSSQLServer,错误号: 2627)
    获取帮助: http://help/2627
    无法创建订阅。 (源: MSSQLServer,错误号: 14057)
    获取帮助: http://help/14057”。
    我意识到大事不妙。
    检查sysmergepublications和sysmergesubscriptions时发现,原本删除的记录自动还原了。我再次删除两个系统表中的冗余记录,订阅恢复正常。但是,删除的记录一会儿就会自动还原。恢复正常的订阅也会再次报同样的错误。
    我检查其他几个发布服务器的系统表也像这台一样存在冗余数据,删除自动还原。
      我不知道这几个表是怎么产生,如何工作的。我认为肯定有另外的表记录这些信息,需要一起删除方可彻底。但我找不到那个表,也怕因误操作造成更大的错误。
      请求帮助我解决这个问题,万分感谢。
    • 已移动 LeoTang 2011年11月7日 2:56 (发件人:Windows Workflow Foundation)
    2011年11月4日 7:33

答案