首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >server复制-如何查找和删除订阅?

server复制-如何查找和删除订阅?
EN

Database Administration用户
提问于 2015-07-31 10:34:26
回答 1查看 10.9K关注 0票数 0

我有两个订阅发布,但它们来自同一个订阅服务器,并写入同一个订阅服务器数据库,其中一个是坏的,另一个运行良好。

我找不到一种方法来删除坏的,所以我决定放弃这两个,然后重新创建订阅。

在publisher服务器上

代码语言:javascript
复制
use [SupplierDB]
go
exec sp_dropsubscription @publication = N'SupplierDB', 
@subscriber = N'REPLON1', 
@destination_db = N'SupplierDB', 
@article = N'all'
GO

那就放弃了好的订阅。

由于无法找到删除或查看错误订阅的方法,所以我决定放弃发布,但当我尝试它时,会收到以下错误消息:

代码语言:javascript
复制
-- Dropping the transactional publication
use [SupplierDB]
exec sp_droppublication @publication = N'SupplierDB'
GO

Msg 14005、级别16、状态1、过程sp_MSdrop_publication、第75行不能删除发布,因为此发布至少存在一个订阅。在尝试删除发布之前,删除对发布的所有订阅。如果问题仍然存在,复制元数据可能不正确;有关故障排除的信息,请参阅联机丛书。

我怎样才能找到和放弃这个订阅?

这是我最初在另一个问题上遇到的问题:需要删除NoSync订阅并重新创建

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-07-31 16:13:50

您需要查看实际的目录/元数据表(S)并清理它们。GUI和存储过程通常不能正确地清理底层表。因此,在运行sp_dropsubscription SP之后,从MSsubscriptions和MSsubscriptions中运行一个select,以查看是否有任何数据引用了您不需要的订阅。见:msdn.microsoft.com/en-us/library/ms179855(v=sql.105).aspxmsdn.microsoft.com/en-us/library/ms179855(v=sql.105).aspx。删除任何表示不应该存在的订阅的行(S),它应该解决问题。您可能需要设置sp_configure‘允许更新’=1来对表进行更改(S)。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/108649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档