【问题标题】:SQL Server script to remove replication?SQL Server 脚本删除复制?
【发布时间】:2011-09-24 22:32:31
【问题描述】:

我被要求编写一个可以运行的 SQL 脚本,它将停止复制并删除订阅者/订阅。

这有可能吗?还是必须使用 GUI?

【问题讨论】:

    标签: sql-server-2005 replication


    【解决方案1】:
    SELECT spid FROM sys.sysprocesses WHERE dbid = db_id('distribution')
    

    并使用进程号将其杀死,如下所示: 杀死 65

    【讨论】:

    • 这甚至不是一个正确的答案。您所做的就是杀死连接到数据库的所有内容。
    【解决方案2】:

    如果您希望完全删除复制,包括所有“位”。或者您的服务器只有一份出版物,而这是您要删除的出版物。

    我会推荐:

    1. 连接到您要在 Microsoft SQL Server Management Studio 中禁用的发布者或分发者,然后展开服务器节点。
    2. 右键单击复制文件夹,然后单击禁用发布和分发。
    3. 按照禁用发布和分发向导中的步骤,选择处理选项以生成脚本

    这样做的好处是不仅可以彻底清理东西。而且还删除了分发数据库,​​如果您以前处理过该数据库,就会发现其中充满了过去的复制残余。

    完整的文档可以在here找到。

    【讨论】:

    • 在确保一切都消失之后,'SP_RemoveDBReplication' 并没有什么坏处。
    【解决方案3】:

    您使用的是哪个版本的 SQL Server。

    试试

    sp_removedbreplication 'DB_PROD' 
    go
    

    相关阅读 - 如何清理复制位 - http://blogs.msdn.com/b/repltalk/archive/2010/11/17/how-to-cleanup-replication-bits.aspx

    Google 也在搜索结果中提供了 MSDN 文章

    如何:禁用发布和分发(复制 Transact-SQL 编程)-http://msdn.microsoft.com/en-us/library/ms147921.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 2017-11-16
      • 1970-01-01
      相关资源
      最近更新 更多