遇到这么一个错误,想对[northwindcs]这个数据库搭建复制,从B服务器发布订阅到C服务器,采用备份还原进行初始化,但是在数据库还原时,报无法对过程‘XXX’执行删除,因为它正用于复制。表面上一看感觉有点奇怪,为什么我在还原数据库的时候会报这样的错误,还原数据库的机理是什么,怎么还存在删除某个存储过程或者视图之类的动作。但是后面“它正用于复制”给了我解决问题的思路。

  通过对架构了解,B服务器上的northwindcs数据库也是从A服务器上订阅而来,采用的推送订阅,现因为A服务器是一套非常重要的交易系统,不想让C服务器直接从A服务器订阅,而是订阅B服务器上的这个数据库。对此重新在B服务器上配置了分发,创建了发布。但是在备份后在C服务器上进行还原的时候报如下错误:

  

  那么怀疑就是B服务器上创建了这个库的发布导致备份集有问题,在C服务器上进行还原的时候报错。于是将B服务器上创建的发布删除,重新进行备份还原,还原未发生异常。

  在这里就有个疑问,难道所有配置了发布的数据库,他的备份都会有问题,还原都会出问题?为了消除这个疑问,将A服务器上该库同样进行了备份,在C服务器上还原,居然没有报错!那么疑问就来了,为什么B服务器的备份就会有问题,虽然B服务器上的northwindcs库是从A服务器上订阅而来,再次创建了发布而已。(此问题尚未解决,求大神给小弟科普一下)

  在这里有一点,数据库复制,不是库级别的,对象级别的,发布都不是把所有的对象全部发布过去,视图和存储过程可以发布。但是每张表里除了和聚集索引相关联的包括主键和主键的统计信息会发不过去,其他的索引、外键、数据库用户、约束、触发器和统计信息都不会发布过去。

  当发布服务器发布了视图和索引之后,这些对象都会被标记为已复制,所以无法进行删除,必须将发布取消之后才可以进行删除,否则就会报如题的错误。

System.Data.SqlClient.SqlError:无法对过程'XXX' 执行 删除,因为它正用于复制。消息 3724,级别 16的更多相关文章

  1. System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'XXX' 数据库不同

    System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'XXX' 数据库不同. 1. 删除与要恢复数据库同名的已经存在的数据库:2. 右击“数据库”选择“还原数 ...

  2. 还原数据库“XXX”时失败。System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数据库备份。

    标题: Microsoft SQL Server Management Studio------------------------------ 还原数据库“GoldBellXZDepot”时失败. ...

  3. System.Data.SqlClient.SqlError: FILESTREAM 功能被禁用”的错误

    还原sql2008数据库时遇到"System.Data.SqlClient.SqlError: FILESTREAM 功能被禁用"的错误,在网上搜索解决方案如下: 1.在" ...

  4. 出现“System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部”错误的解决方案

    Sql Server2008数据库在还原时出现如下错误信息:System.Data.SqlClient.SqlError: 尚未备份数据库<数据库名称>的日志尾部.如果该日志包含您不希望丢 ...

  5. System.Data.SqlClient.SqlError: 对文件……的目录查找失败[转]

    System.Data.SqlClient.SqlError: 对文件……的目录查找失败,出现操作系统错误 3 的处理办法 在还原SQL SERVER数据库时出现了查找目录失败的原因,困扰了我一个多小 ...

  6. sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL\data\itsm_Data.MDF'。数据库 'my1' 正在使用该文件的解决方案

    对数据库备份进行还原时遇到“sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQ ...

  7. 还原数据库备份文件时,关于“System.Data.SqlClient.SqlError:媒体集有2个媒体簇,但只提供了1个。必须提供所有成员”的处理方式

    好久没写博客了,最近在做毕设的权限管理模块,今天在还原数据库文件时,遇到了“System.Data.SqlClient.SqlError:媒体集有2个媒体簇,但只提供了1个.必须提供所有成员”这个错误 ...

  8. System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部

    SQL还原时出现下面的错误,System.Data.SqlClient.SqlError: 尚未备份数据库 "***" 的日志尾部.如果该日志包含您不希望丢失的工作,请使用 BAC ...

  9. System.Data.SqlClient.SqlError:无法打开备份设备'D:\..\abc.bak'

    在SQL Server中备份数据库时遇到备份对于服务器“服务器名”失败. (Microsoft.SqlServer.Smo)其他信息:System.Data.SqlClient.SqlError:无法 ...

随机推荐

  1. __PUBLIC__ 路径更改

    config.php 'TMPL_PARSE_STRING' => array( '__PUBLIC__' => __ROOT__ . '/' . APP_NAME . '/Tpl/Pub ...

  2. 我的archlinux中安装的关于xfce4的软件

    包括一些panel的插件: xfce4-appfinder - xfce4-battery-plugin - xfce4-eyes-plugin - xfce4-mixer - xfce4-netlo ...

  3. 分享一个动态生成RDLC报表的类

    在实际工作中,当需要进行大批量查询和生成报表的时候,可以使用我写的类. 特点: 无需报表设计器.无需为报表设置数据集 只需要传入查询结果就可以全自动生成报表,传入的对象为Dynamic(目前支持Dat ...

  4. delphi 图像旋转

    网络搜集的 觉得有用的拿去吧  速度不错呢 //旋转90° procedure Rotate(Bitmap: TBitmap); type THelpRGB = packed record rgb: ...

  5. 初次了解的Java多线程

    0.1熟悉多线程 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能 ...

  6. c++中的<<函义

    1.一个是左移运算:x = 4<< 2; 2.输出流运算:cout <<x;//X的值输出流到设备中.

  7. 关于 K米 —— 的案例分析

    第一部分 调研,评测 评测 下载并使用,描述最简单直观的个人第一次上手体验. 我觉得ktv遥控软件设计的很好,给我带来了很多方便,点歌也不用那么麻烦了跑到台子那里点,调各种音量灯光也是,所以第一次上手 ...

  8. android微信支付总结+自己搭建服务器

    1.前期注册操作 1-1:微信开发平台:https://open.weixin.qq.com/ 1-2:创建移动应用 签名获取: 1.将自己的apk签名打包,运行到手机上. 2.将微信支付的签名工具, ...

  9. [转]ping检测网络连接异常

    转载地址:http://blog.csdn.net/feizxiang3/article/details/26672781 一般来说当出现网络无法连接时,习惯性的用ping命令来ping某个ip地址, ...

  10. EF 如何更新少量字段

    EF更新少量字段需要解决两个问题 1.动态的将需要更新的字段提取出来 2.将提取出来的字段设为更新状态 通常更新的时候,都是根据条件将实体取出来,然后赋值字段,最后更新整个实体,所以在方法上看似是更新 ...