如何手动删除复制,在 SQL Server 2000 或 SQL Server 2005 中

文章翻译 文章翻译
文章编号: 324401 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文介绍如何从 Microsoft SQL Server 2000 或 Microsoft SQL Server 2005 运行的计算机中删除复制。若要去一个复制中,您必须除去订阅、 在的发布和分发服务器被配置为复制的。您可以通过运行由 SQL Server 企业管理器或 $ SQL Server 管理 Studio 生成 TRANSACT-SQL 脚本来删除复制。但是,如果您不能生成在 TRANSACT-SQL 脚本以删除复制,您可以手动删除复制,通过使用系统存储过程和其它 TRANSACT-SQL 语句。本文包含有关可在此过程中使用的系统存储过程的信息。

注意有关系统的其他信息此本文提到的存储的过程,请参阅 SQL Server 联机丛书。

手动删除一个复制

通过使用系统存储过程和其它 TRANSACT-SQL 语句,您可以手动删除复制。若要完全删除复制,请按照下列步骤操作:
  1. 删除被配置为复制的所有订阅。
  2. 删除被配置为复制的所有发布。
  3. 除去分发服务器被配置为复制的。
注意本文内下文中列出的每种类型的复制系统存储过程。使用适当的存储的过程具体取决于您想要删除的复制类型。

除去订阅

若要从 SQL Server 实例除去订阅,您可以使用下面的存储的过程和相应的参数:
  • sp_dropsubscription: 您可以使用 sp_dropsubscription 系统存储过程在发布服务器上删除一个特定的文章、 发布,或组的订阅的订阅。发布数据库上,您必须在发布服务器上运行该存储的过程。
  • sp_droppullsubscription: 使用 sp_droppullsubscription 系统存储过程可以在当前数据库中的订阅服务器上除去订阅。请求订阅数据库上,您必须在订阅服务器上运行该存储的过程。
  • sp_dropmergesubscription: 使用 sp_dropmergesubscription 系统存储过程可以除去对合并发布和合并代理程序相关联的合并发布的订阅。发布数据库上,您必须在发布服务器上运行该存储的过程。
  • sp_dropmergepullsubscription: 使用 sp_dropmergepullsubscription 系统存储过程可以除去合并请求订阅。请求订阅数据库上,您必须在订阅服务器上运行该存储的过程。

除去快照订阅

要除去快照发布的所有文章的强制订阅,请在发布服务器上运行以下脚本:
USE <Publication database name>
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'
要除去快照发布的所有项目的快照请求订阅,请按照下列步骤操作:
  1. 在订阅服务器上运行以下 SQLb 脚本:
    USE <Subscription database name>
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
  2. 在发布服务器上运行以下脚本:
    USE <Publication database name>
    GO
    EXEC sp_dropsubscription @publication=N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'all'

删除事务性订阅

要除去事务发布的所有文章的强制订阅,请在发布服务器上运行以下脚本:
USE <Publication database name>
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'
要删除请求订阅的事务性发布的所有项目,请按照下列步骤操作:
  1. 在订阅服务器上运行以下脚本:
    USE <Subscription database name>
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
  2. 在发布服务器上运行以下脚本:
    USE <Publication database name>
    GO
    EXEC sp_dropsubscription @publication =N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'<Destination database name>'

除去合并订阅

若要删除强制订阅,请在发布服务器上运行以下脚本:
USE <Publication database name>
GO
EXEC sp_dropmergesubscription @publication = N'<Publication name>', @subscriber = N'<Publisher server name>', @subscriber_db = N'<Subscription database name>', @subscription_type = N'push'
要删除请求订阅,请按照下列步骤操作:
  1. 在订阅服务器上运行以下脚本:
    USE <Subscription database name>
    GO
    EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
  2. 在发布服务器上运行以下脚本:
    USE <Publication database name>
    GO
    EXEC sp_dropmergesubscription @subscription_type = N'pull', @publication = N'<Publication name>', @subscriber = N'<Subscriber server name>', @subscriber_db = N'<Subscription database name>'

删除该发布

删除所有订阅一个发布的订阅后,您可以在出版物中删除。删除发布数据库在发布后,您必须将发布数据库的复制数据库选项设置为 false。若要去出版物中,您可以使用下列系统存储过程:
  • sp_droppublication: 可以使用 sp_droppublication 系统存储过程除去发布和与该出版物关联的文章。 发布数据库上,您必须在发布服务器上运行该存储的过程。
  • sp_dropmergepublication: 使用 sp_dropmergepublication 系统存储过程可以除去合并发布和快照代理程序与合并发布相关联的。也会删除与该出版物关联的文章。发布数据库上,您必须在发布服务器上运行该存储的过程。
  • sp_replicationdboption: 使用 sp_replicationdboption 系统存储过程可以设置为当前数据库的复制数据库选项。您必须在发布服务器上运行该存储的过程。
若要删除对快照发布,请在发布服务器上运行以下脚本:
USE <Publication database name>
GO
EXEC sp_droppublication @publication = N'<Publication name>'

USE master
GO
exec sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'
除去事务发布,请在发布服务器上运行以下脚本:
USE <Publication database name>
GO
EXEC sp_droppublication @publication = N'<Publication name>'

USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'
要除去合并发布,请在发布服务器上运行以下脚本:
USE <Publication database name>
GO
EXEC sp_dropmergepublication @publication = N'<Publication name>'

USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'merge publish', @value = N'false'

除去分发服务器

您除去所有订阅和发布后,您可以删除相关的分发服务器。但是,除去分发服务器之前,必须从发布服务器中删除订阅服务器标识。这样做使用下面的存储的过程:
  • sp_dropsubscriber: 可以从已注册的服务器中除去订阅服务器标识使用 sp_dropsubscriber 系统存储过程。该存储的过程为订阅服务器中删除该注册表项。该存储的过程在发布数据库上运行在发布服务器上。
  • sp_dropdistributor: 使用 sp_dropdistributor 系统存储过程可以删除分发服务器。该存储的过程在分发服务器运行。
从发布服务器中删除订阅服务器标识,请在发布服务器上运行以下脚本:
USE master
GO
EXEC sp_dropsubscriber @subscriber = N'<Subscriber server name>', @reserved = N'drop_subscriptions'
去分发服务器分发服务器上运行以下脚本:
USE master
GO
EXEC sp_dropdistributor @no_checks = 1

使用存储的过程

当您删除复制时,您还可以使用下面的存储的过程:
  • sp_removedbreplication: 使用 sp_removedbreplication 系统存储过程可以从数据库中删除所有复制对象,而不更新分发服务器上的数据。在发布服务器发布数据库上或在订阅服务器上的订阅数据库,您必须运行该存储的过程。下面是此存储过程的语法:
    sp_removedbreplication '<Database name>'
  • sp_droparticle: 使用 sp_droparticle 系统存储过程可以从一个快照发布或事务发布除去的项目。如果仍存在到已发布项目的一个或多个订阅,您不能删除的项目。发布数据库上,您必须在发布服务器上运行该存储的过程。下面是此存储过程的语法:
    sp_droparticle @publication = N'<Publication name>', @article = N'<Article name>', @force_invalidate_snapshot = 1

参考

详细的信息,请参阅下面 SQL Server 联机丛书中的主题:
  • 如何禁用发布和分发 (处理 SQL)
  • 如何删除发布和项目 (处理 SQL)
  • 如何删除强制订阅 (处理 SQL)
  • 如何删除一个请求订阅 (处理 SQL)
  • 如何删除一个匿名订阅 (处理 SQL)
  • 如何删除发布和项目 (企业管理器)
  • 如何删除强制订阅 (企业管理器)
  • 如何删除请求或匿名订阅 (企业管理器)

属性

文章编号: 324401 - 最后修改: 2005年11月23日 - 修订: 3.3
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 标准版
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
关键字:?
kbmt kbhowtomaster kbreplication kbstoredproc KB324401 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 324401
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com