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

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

  

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

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

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

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

最新文章

  1. PE启动菜单修改工具 MsgDiyer(GfxMenu Message制作工具) V2.0.3官方版
  2. GnuStep使用
  3. iphone 群发短信 闪退 彻底解决
  4. qt中添加Q_OBJECT报错的问题
  5. Leetcode 107 Binary Tree Level Order Traversal II 二叉树+BFS
  6. StretchDIBits函数
  7. Standalone HBase
  8. Spark机器学习 Day2 快速理解机器学习
  9. BrandZ:2016年全球最具价值品牌百强榜(完整报告)
  10. SQL Standard Based Hive Authorization(基于SQL标准的Hive授权)
  11. 【 D3.js 入门系列 — 4 】 如何使用比例尺( scale )
  12. RabbitMQ安装和使用(和Spring集成)
  13. php下拉菜单选中值在选择之后保留并且显示
  14. [CF1107E]Vasya and Binary String【区间DP】
  15. myeclipse及Eclipse中.classpath、.project、.settings、.mymetadata(myeclipse特有)介绍
  16. PHP 文件写入和读取(必看篇)
  17. CentOS6.5下连网以及输入法下载
  18. web.py 中文模版报错
  19. 学习 Linux_kernel_exploits 小记
  20. CSS排版常用值指南

热门文章

  1. ES6里箭头函数的陷阱
  2. UICollectionView 自定义组头组尾的XIB方法
  3. js 中关键字 this的用法
  4. Subversion Edge
  5. XMLPuLL解析
  6. Linux下取代top的进程管理工具 htop
  7. linux 使用 rz 和 sz 命令
  8. [比较老的文章]三维渲染引擎 OGRE 与 OSG 的比较综述
  9. Tomcat启动,不能加载项目问题。
  10. python操作文件案例二则