sql srver怎么取消发布和订阅
发布网友
发布时间:2022-04-25 04:05
我来回答
共2个回答
懂视网
时间:2022-04-08 11:19
EXEC sp_removedbreplication ‘WR_YK1‘; 引号里是发布数据库名称
本文出自 “陈胜纲的博客” 博客,请务必保留此出处http://chenshengang.blog.51cto.com/4399161/1683293
sqlserver2008r2无法删除本地发布的方法
标签:数据库
热心网友
时间:2022-04-08 08:27
以下方法均为 事务复制 --PUSH方式
1、删除单个的发布 : 复制--> 本地发布--> 右击--> 删除,如下图,然后再把对应的订阅服务器删除掉,或者等待执行:sp_MSdistribution_cleanup 的JOB(分发清除: distribution)默认订阅72小时失效之后自动删除。
2、删除全部的发布: 复制--> 右击 --> 禁用发布和分发,如下图,这个会同时的把分发服务器的配置清掉,需要重新配置的哦。。
其实只是执行了一个脚本
use [master]
exec sp_dropdistributor @no_checks = 1
GO
/*
[ @no_checks=] no_checks
指示在删除分发服务器之前是否检查有无依赖对象。no_checks 的数据类型为 bit,默认值为 0。
如果为 0,则 sp_dropdistributor 将执行检查,以确保除分发服务器以外的所有发布和分发对象都已删除。
如果为 1,则 sp_dropdistributor 将在卸载分发服务器之前删除所有发布和分发对象。
[ @ignore_distributor=] ignore_distributor
指示是否在未连接到分发服务器的情况下执行此存储过程。ignore_distributor 的数据类型为 bit,默认值为 0。
如果为 0,则 sp_dropdistributor 将连接到分发服务器,并删除所有复制对象。 如果 sp_dropdistributor 无法连接到分发服务器,则存储过程将失败。
如果为 1,则不与分发服务器建立连接,并且不删除复制对象。 如果分发服务器正在卸载或持久脱机,才使用它。 直到分发服务器在未来某个时间重新安装之后,才会删除分发服务器中的该发布服务器的对象。
*/
--注意:
sp_dropdistributor 用于所有类型的复制。
不过不是建议直接的界面操作。
3、对于某些时候可能删除不掉,这个时候可以直接trace一下,然后把进程杀掉
4、或者对于附加的数据库不注意可能会出现发布的错误,你也删除不掉。会报下面的错误。
无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限。
已将数据库上下文更改为 'AdventureWorks2008'。 (Microsoft SQL Server,错误: 15517)
这个时候可以查一下数据库属性->文件->所有者如果没有话,填个sa再试一次就可以。