我的机器上的复制存在问题,我在SSMS中显示了一些不存在的订阅。我尝试使用SSMS中的UI删除它们,并使用一些T-SQL ......但没有运气。这些出版物甚至不再存在(它们在同一台机器上)。
关于如何删除它们的任何想法?
更多信息: 这种情况我似乎在有3个订阅的地方(SSMS不会让我看,因为'它们不存在')。
答案 0 :(得分:2)
您可能在分发数据库中有一些孤立的元数据。如果您不再发布任何数据,可能需要尝试Disabling Publishing and Distribution删除孤立的出版物和订阅。
答案 1 :(得分:2)
我觉得奇怪的是sp_removedbreplication
没有用...可能会尝试sp_dropsubscription
,并包含ignore_distributor
参数:
declare @yourServer sysname
set @yourServer = @@servername
exec sp_dropsubscription
@publication='UD-ForCMS',
@article='all',
@subscriber=@yourServer,
@destination_db='CMS',
@ignore_distributor=1
答案 2 :(得分:0)
我发现有时复制创建的系统视图对象可以保持挂起状态。停止手动重建复制。我的解决方案是手动删除系统视图syncobj。我建议在删除上面的发布属性之前总是删除订阅和发布,因为我发现项目因为长期问题而遗留下来。
Msg 2714,Level 16,State 3:已经有一个名为的对象 数据库中的“syncobj_0x3437324238353830”。消息21745,等级16, 状态1,过程sp_MSrepl_articleview,第272行无法生成 过滤视图或过程。验证为。指定的值 可以将sp_addarticle的@filter_clause参数添加到WHERE中 SELECT语句的子句,用于生成有效查询。 Msg 3931,等级 16,状态1,过程sp_MSrepl_articleview,第401行当前 事务无法提交且无法回滚到 保存点。回滚整个交易。警告:分发 代理作业已被隐式创建并将在SQL下运行 服务器代理服务帐户。