SQL2005删除复制数据库的发布与订阅的方法(转载)
SQL2005删除复制数据库的发布与订阅的方法
--在测试环境中恢复从正式数据库服务器 上备份下来的bak文件后,正式环境里数据库复制的发布、订阅也被带进来了,结果恢复的数据库无法更改表结构,直接删除这些错误的发布会提示订阅没有清 理,但删除订阅时又提示订阅服务器不存在。
master执行语句:sp_removedbreplication ‘复制的数据库名’。刷新本地发布后该数据库不应存在的复制就消失了。
sp_removedbreplication 系统存储过程而不更新在分发服务器上的将数据从数据库中删除所有复制对象。 必须在发布数据库上的发布服务器或订阅服务器的订阅数据库上运行存储的过程。
-----------------------------------------------------------------------------------------------------------------------------------
本 文介绍如何从 Microsoft SQL Server 2000 或 Microsoft SQL Server 2005 运行的计算机中删除复制。若要去一个复制中,您必须除去订阅、 在的发布和分发服务器被配置为复制的。您可以通过运行由 SQL Server 企业管理器或 $ SQL Server 管理 Studio 生成 TRANSACT-SQL 脚本来删除复制。但是,如果您不能生成在 TRANSACT-SQL 脚本以删除复制,您可以手动删除复制,通过使用系统存储过程和其它 TRANSACT-SQL 语句。本文包含有关可在此过程中使用的系统存储过程的信息。
注意有关系统的其他信息此本文提到的存储的过程,请参阅 SQL Server 联机丛书。
手动删除一个复制
通过使用系统存储过程和其它 TRANSACT-SQL 语句,您可以手动删除复制。若要完全删除复制,请按照下列步骤操作:
删除被配置为复制的所有订阅。
删除被配置为复制的所有发 布。
除去分发服务器被配置为复制的。
注意本文内下文中列出的每种类型的复制系统存储过程。使用适当的存储的过程具体取决于您想要删除 的复制类型。
除去订阅
若要从 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'
要 除去快照发布的所有项目的快照请求订阅,请按照下列步骤操作:
在订阅服务器上运行以下 SQLb 脚本: USE <Subscription database name>
GO
EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
在发布服务器上运行以下脚本: 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'
要删除请求订阅的 事务性发布的所有项目,请按照下列步骤操作:
在订阅服务器上运行以下脚本: USE <Subscription database name>
GO
EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
在发布 服务器上运行以下脚本: 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'
要 删除请求订阅,请按照下列步骤操作:
在订阅服务器上运行以下脚本: USE <Subscription database name>
GO
EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
在发布服 务器上运行以下脚本: 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
SQL2005删除复制数据库的发布与订阅的方法(转载)的更多相关文章
- MSSQL复制中的发布与订阅
准备条件 1.2台服务器 2.WINDOWS SERVER 2008 64bit + 3.SQL SERVER 2008 R2 + 4.MSSQLSERVER服务与MSSQLAGENT服务正常运行中 ...
- Linux删除ORACLE数据库用户失败提示ORA-01940解决方法
操作环境 SuSE11+Oracle11gR2 问题现象 删除ORACLE数据库用户失败,提示ORA-01940: cannot drop a user that is currently conne ...
- Sql Server 2008R2 数据库发布与订阅
背景描述: 发布服务器A: (远程端) , 数据库服务名: GUANWANG1 订阅服务器B: (本机) , 数据库服务名: PC-LLRDBA 需要从服务器A中数据库发布,然后在B中订阅A发布 ...
- sql数据库发布、订阅同步方式操作
Sql数据库发布订阅分为两个步骤:1.发布.2.订阅.首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅. 一.发布. 发布需要用实际的服务器名称,不能使用 ...
- SqlServer 禁止架构更改的复制中手动修复使发布和订阅中分别增加的字段同步
原文:SqlServer 禁止架构更改的复制中手动修复使发布和订阅中分别增加的字段同步 由于之前的需要,禁止了复制架构更改,以至在发布中添加一个字段,并不会同步到订阅中,而现在又在订阅中添加了一个同名 ...
- (转)SqlServer 数据库同步的两种方式 (发布、订阅),主从数据库之间的同步
最近在琢磨主从数据库之间的同步,公司正好也需要,在园子里找了一下,看到这篇博文比较详细,比较简单,本人亲自按步骤来过,现在分享给大家. 在这里要提醒大家的是(为了更好的理解,以下是本人自己理解,如有错 ...
- (转)SqlServer2008 数据库同步的两种方式 (发布、订阅)
上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作.发布订阅份为两个步骤:1.发布.2订阅.首先在数据源数据库服务器上对需要同步的数 ...
- SqlServer2008 数据库同步的两种方式 (发布、订阅)
尊重原著作:本文转载自http://www.cnblogs.com/tyb1222/archive/2011/05/31/2064944.html 上篇中说了通过SQL JOB的方式对数据库的同步,这 ...
- (转)SqlServer2008 数据库同步:发布、订阅
原文地址:http://www.cnblogs.com/tyb1222/archive/2011/05/31/2064944.html 发布订阅份为两个步骤:1.发布.2订阅.首先在数据源数据库服务器 ...
随机推荐
- 实践SQLServer Tuning
已有的系统业务数据属性多,表之间关系紧密.单表数据量(5481 row(s) affected)级别(其中三四个主表),其他表数据量较小. 0)使用set statistics生成辅助信息参考. se ...
- Dottrace跟踪代码执行时间
当自己程序遇到性能问题,比如请求反应缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过长,然后再分析应该怎样解决 ...
- 20145208 实验五 Java网络编程
20145208 实验五 Java网络编程 实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务 ...
- 基于DDD的.NET开发框架 - ABP初探
返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...
- ajax traditional
代码如下: <script> $(function () { var s = Array("1", "2", "3"); var ...
- QRadioButton分组且无边框的简单实现
最近在用QT+VS2008做一个项目,涉及到一个综合测评表,说白了有点像问卷调查——很多题目每题若干个选项. 初始时打算用下拉框,每个框中填入所有选项,但后来一琢磨这种方式不够直观与人性化,增添了一步 ...
- chromiun 学习《二》 目录结构 +启动流程
1.chromium的目录结构. 2.先上分析图一张.主要是从BrowserMain进程进行分析的.
- OVER(PARTITION BY)函数介绍
问题场景 最近在项目中遇到了对每一个类型进行求和并且求该类型所占的比例,当时考虑求出每种类型的和,并在java中分别对每一种类型的和与总和相除求出所占比例.后来,想到这样有点麻烦,并且项目中持久层使用 ...
- 【kAriOJ】离散数学春季学期编程测试 1
A.凯撒密码 题意: 给你k1,k2,和一串明文,一串密文. 明文用k1加密,密文用k2解密. 对于明文要把字母转换成大写字母,非字母全部删除. 额:要考虑到取模可能会变成负数,所以要加一下26再取模 ...
- 【CodeForces 602A】C - 特别水的题3-Two Bases
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102271#problem/C Description After seeing the ...