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订阅.首先在数据源数据库服务器 ...
随机推荐
- 解决 Windows Update 时提示当前无法检查更新,因为未运行服务
故障:打开“Windows Update”出现红色盾牌图标 点击“检查更新”,出现“Windows Update 当前无法检查更新,因为未运行服务.您可能需要重新启动计算机” 查看“Windows U ...
- matlab如何读取未知行数,带头文件和字段名的txt文件
文件格式是这样的 20120108 50024 X235RZB30801 01 15 2361 2362 2363 2364 2365 2366 2367 2368 2369 236A 236B 23 ...
- JavaScript标记上的defer与async的作用与区别
当浏览器遇到 script 标签时,文档的解析将停止,并立即下载并执行脚本,脚本执行完毕后将继续解析文档.但是我们可以将脚本标记为 defer,这样就不会停止文档解析,等到文档解析完成才执行脚本,也可 ...
- Unity发送参数给iOSNative并响应
unity想要给iOS客户端发送通知并相应.语言太苍白直接上代码. unity端创建两个C#文件 1.触发cs这个不用多说,大家估计都懂. using UnityEngine; using Syste ...
- windows API 开发飞机订票系统 图形化界面 (三)
来吧,接下来是各个功能的函数的实现代码. 首先,程序运行时加载读入账户信息和航班信息.接下来就该读取文件了. 我把账户资料和航班信息储存在了.txt文件里 那么问题就来了,挖掘机...额,不对,应该怎 ...
- jquery.validate.js常用扩展函数
$(function () { // 判断整数value是否等于0 jQuery.validator.addMethod("isIntEqZero", function (valu ...
- Go-MySQL-Driver:一个Go语言的轻量级极速的mysql驱动
Go语言的 database/sql 包的一个 MySQL驱动. 特性 轻量级与快速 原生Go语言,没有C绑定,只有纯Go 没有不安全的操作(类型转换等) 动态处理崩溃的连接 动态连接池 支持大于16 ...
- 每天一个linux命令(41):at命令
在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务. 通过'添加任务计划'的一步步引导,则可建立一 ...
- 嘻哈帮天通苑_poppin——张锋
l click_me
- NOIP 2014 Day1 T3飞扬的小鸟
题目描述:http://codevs.cn/problem/3729/ 表示各种shabi的我编和调了半天,思路大体就是一个完全背包的模型,不过会多一些额外的转移(因为题目限制高度之类的),不过值得注 ...