你目前正处于脱机状态,正在等待 Internet 重新连接

如何在 SQL Server 2000年或 SQL Server 2005 中手动删除一个复制

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 324401
概要
本文介绍如何从运行Microsoft SQL Server 2000或 Microsoft SQL Server 2005的计算机中删除复制。若要删除一个复制,必须除去订阅,发布,并配置为复制的分发服务器。您可以通过运行生成的 SQL Server 企业管理器或 SQL Server 管理 Studio 事务处理 SQL 脚本中删除复制。但是,如果您不能生成要删除复制的事务处理 SQL 脚本,您可以手动删除复制使用系统存储过程和其它事务处理 SQL 语句。本文包含有关可在此过程中的系统存储过程的信息。

注意:有关其他信息系统这篇文章中提到的存储的过程请参阅 SQL Server 联机丛书。

返回页首

手动删除复制

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

返回页首

除去订阅

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

除去快照订阅

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

删除事务性订阅

若要删除强制订阅的事务发布的所有项目,请在发布服务器上运行下面的脚本:
USE <Publication database name>GOEXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'
若要删除请求订阅的事务发布的所有项目,请执行以下步骤:
  1. 在订阅服务器上运行下面的脚本:
    USE <Subscription database name>GOEXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
  2. 在发布服务器上运行下面的脚本:
    USE <Publication database name>GOEXEC sp_dropsubscription @publication =N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'<Destination database name>'

删除合并订阅

若要删除强制订阅,请在发布服务器上运行下面的脚本:
USE <Publication database name>GOEXEC 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>GOEXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
  2. 在发布服务器上运行下面的脚本:
    USE <Publication database name>GOEXEC 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>GOEXEC sp_droppublication @publication = N'<Publication name>'USE masterGOexec sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'
若要除去事务发布,请运行下面的 scriptat 出版商:
USE <Publication database name>GOEXEC sp_droppublication @publication = N'<Publication name>'USE masterGOEXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'
若要除去合并发布,请在发布服务器上运行下面的脚本:
USE <Publication database name>GOEXEC sp_dropmergepublication @publication = N'<Publication name>'USE masterGOEXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'merge publish', @value = N'false'
返回页首

除去分发服务器

您除去所有订阅和发布后,可以删除相关的分销商。然而,除去分发服务器之前,必须从发布服务器上除去订阅服务器指派。为此,请使用下面的存储的过程:
  • sp_dropsubscriber: 您可以使用sp_dropsubscriber系统存储过程从已注册的服务器中除去订阅服务器指派。该存储的过程删除订阅服务器上的注册表项。该存储的过程在发布服务器的发布数据库上运行。
  • sp_dropdistributor: 您可以使用sp_dropdistributor系统存储过程删除分发服务器。该存储的过程在分发服务器上运行。
从发布服务器,进行以下脚本在发布服务器上除去订阅服务器指派:
USE masterGOEXEC sp_dropsubscriber @subscriber = N'<Subscriber server name>', @reserved = N'drop_subscriptions'
若要删除分发服务器上,请在分发服务器上运行下面的脚本:
USE masterGOEXEC 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)
  • 如何删除发布和项目 (企业管理器)
  • 如何删除强制订阅 (企业管理器)
  • 如何删除请求订阅或匿名订阅 (企业管理器)
返回页首

警告:本文已自动翻译

属性

文章 ID:324401 - 上次审阅时间:01/25/2015 10:52:00 - 修订版本: 4.0

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

  • kbhowtomaster kbreplication kbstoredproc kbmt KB324401 KbMtzh
反馈