完全清理合并复制设置的正确方法是什么?
我尝试删除订阅,然后删除发布,然后“禁用发布和分发”并删除分发数据库,然后再次开始设置复制。
不幸的是,在那之后我发现 dbo.msmergesubscriptions 表仍然有关于我在 2 年前曾经拥有的旧订阅的旧记录!
是否有任何关于如何正确和完全清理合并复制设置的官方文档?
完全清理合并复制设置的正确方法是什么?
我尝试删除订阅,然后删除发布,然后“禁用发布和分发”并删除分发数据库,然后再次开始设置复制。
不幸的是,在那之后我发现 dbo.msmergesubscriptions 表仍然有关于我在 2 年前曾经拥有的旧订阅的旧记录!
是否有任何关于如何正确和完全清理合并复制设置的官方文档?
不知何故,在删除订阅和/或发布后,您会得到孤立的复制元数据。当使用 GUI 删除订阅和发布时,可能会发生这种情况。相反,请尝试使用 T-SQL 复制存储过程来删除订阅和发布。
如何:删除推送订阅(复制 Transact-SQL 编程)
如何:删除请求订阅(复制 Transact-SQL 编程)
如何:删除发布(复制 Transact-SQL 编程)
删除订阅和发布后,验证复制元数据是否已删除。如果没有,请使用sp_removedbreplication从数据库中删除所有复制对象。
与事务复制相比,合并复制有点难以删除。
以下是我成功删除过时/剩余的合并复制点点滴滴的步骤:
通过在发布者和订阅者的合并复制数据库上运行以下查询并将结果暂时存储在某个地方(即在文本文件中),获取已发布文章及其现有触发器的列表以供稍后参考
通过从发布者运行步骤 1 中生成的删除脚本来删除合并复制。
在发布者和订阅者上,通过运行在步骤 3 中生成的删除触发器脚本,清除复制删除脚本未删除的所有触发器。
在发布者和订阅者上,检查
sysmergepublications
、sysmergesubscriptions
和sysmergearticles
表是否仍然存在合并复制的条目。如果是这样,请运行以下脚本以从 sysmergearticles 和 sysmergepublications 中删除条目注意:您还可以删除 sysmergearticles 中不再被 sysmergepublictaions/sysmergesubscriptions 中的条目引用的任何条目,但在执行此操作时请务必小心
如果此数据库上没有设置其他合并复制,您还可以截断发布者/订阅者数据库上的 MSmerge* 表。
遵循上述步骤将确保MERGE Replication 被彻底删除- 不留下任何痕迹!
注意:我在当前环境中一直使用上述方法,没有任何问题。但是请事先测试一下......不用说......如果有什么事情搞砸了,不要责怪这个网站和我:-)