【问题&解决】还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”的解决办法
今天在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个。必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法!
一、备份与还原遇到的问题描述与解决方法:
前两天用户测试我们做的评教系统小软件,有点问题我们过去看了看,想将他们的测试数据备份一下,以便我们修改软件测试使用。
我是这样备份的,数据库备份默认有一个路径:C\...,而我又添加了一个新路径,没将默认路径删除,而是选中新路径,我就理所当然的认为数据库中的数据备份到我新加的路径下了。

今天还原数据库时,我只选择了D盘备份文件"YZTeacherEvaluate",提示这样一个错误:还原对于服务器“192.168.24.101”失败。 其他信息:System.Data.SqlClient.SqlError: 介质集有 2 个介质簇,但只提供了 1 个。必须提供所有成员。 (Microsoft.SqlServer.Smo) 。详情见图片:

我想让用户重新给我备份一下发过来,结果他操作过程中,将数据库给删除了,然后将C盘数据库备份文件给我发了过来,我误以为是他重新备份的,附加一下依然提示上述错误。突然想起来,将这两个文件一起还原,应该就没事了。
接下来,我重新还原数据库,将C盘和D盘备份的数据库文件同时附加上,还原成功了,数据还在,万幸啊!

二、数据库备份与还原需要注意的地方:
1.在做数据库的备份时,注意备份的“目标”中,最好是只有一个路径,如果多个路径,在还原时,则需要提供多个bak文件才能成功还原,否则还原失败,并提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”;备份目标只有一个路径,备份成功后,该路径生成一个bak文件,该文件是数据文件不包括该数据库的结构信息,如果在备份时“选项”中是选中“追加到现有的备份集”那么该文件并不是说一个文件就只存了一次备份的数据,而是保存着所有的备份信息,在你想还原的时候,会列出来供你选择哪一个版本是你想还原的;如果“选项”选中的是“覆盖所有现有的备份集”,那么就只有一份最新的了,也就是说一旦数据发生结构性变化时,比如增加或者删除了一个表的字段,那么很可能就还原不成功了。


2. 还有一个注意的地方,就是数据库备份只能是备份到本机
3. 还原时,有两种方式,一种是“数据库还原”,系统会在安装目录中找到该数据库的那份“最新”的备份;一种是“文件”还原,也就是可以通过数据文件bak来还原;不管是通过哪种方式来还原,有可能会出现以下错误“因为数据库正在使用,所以无法获得对数据库的独占访问权”,解决方法:重启数据库服务器;
4.以上是数据的备份还原,如果是要涉及数据库结构的备份,比如表结构,存储过程。。。。。的备份,有两种方法:一种就用“附加”mdf文件,这种方法当然会附带所有的信息,包括数据,但是在拿不到mdf的情况下,比如你要复制的数据库是别人的服务器的,而你的权限拿不到mdf的,就只能用以下这种方法,也就是另一种方法:首先对源数据库生成脚本(任务-生成脚本)从而得到该数据库的结构,再“导入数据”。
来源:项目经验——Sql server 数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”
PS:如果没有把数据删除的话,可以重新备份,在备份前把备份历史路径全删除就可以了。
【问题&解决】还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”的解决办法的更多相关文章
- [数据库]Sql server 数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”
在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个.必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一.备份与还原遇到的问题描述与解决方法: 前两 ...
- 项目经验——Sql server 数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员” .
在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个.必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一.备份与还原遇到的问题描述与解决方法: 前两 ...
- Sql server 数据库的备份和还原数据库提示“ 加载的介质已格式化为支持 1 个介质簇,但根据指定的备份设备,应支持 2 个介质簇”
数据库备份和还原总结 在 "M:\2017-Pro\company\other\databak_2014-10\anquanbaowei_db_201704300200.BAK" ...
- 在SQL SERVER 2005中还原数据库时出现错误:system.data.sqlclient.sqlerror 媒体集有 2 个媒体簇 但只提供了 1 个。必须提供所有成员。 (microsoft.sqlserver.smo)
问题:在SQL SERVER 2005中还原数据库时出现错误:system.data.sqlclient.sqlerror 媒体集有 2 个媒体簇 但只提供了 1 个.必须提供所有成员. (micro ...
- (转载)解决MySql 数据库 提示:1045 access denied for user 'root'@'localhost' using password yes
今天想用用MySQL 数据库 谁知道老提示 1045 access denied for user 'root'@'localhost' using password yes 最后在csdn 上找到 ...
- SqlServer项目经验:介质集有2个介质簇,但只提供了1个。必须提供所有成员
在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个.必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一.备份与还原遇到的问题描述与解决方法: 前两 ...
- 解决还原数据库是出现system.data.sqlclient.sqlerror filestream功能被禁用的问题
在master数据库下新建查询 输入如下语句: USE master GO RECONFIGURE 执行 成功还原数据库
- 解决MySql 数据库 提示:1045 access denied for user 'root'@'localhost' using password yes
今天想用用MySQL 数据库 谁知道老提示 1045 access denied for user 'root'@'localhost' using password yes 最后在csdn 上找到 ...
- 通过NBU还原数据库提示LINKING异常,无法恢复数据
错误提示: 解决方法:
随机推荐
- ESB的几个基本概念
京-星之泪: 请教一个问题:esb中路由和管道对的概念应该怎么理解,各自有什么用途,他们之间的关系 北京-kimmking: transport endpoint inbound outboun ...
- 什么叫NAT,设置NAT的两个方法
NAT是网络地址翻译就是把公网IP翻译成私有地址, 又叫端口映射或端口转发. 采用路由方式是指ADSL拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网.这时ADSL的 ...
- Send a WhatsApp Message programatically -- Tasker WhatsTasker
Here is My code snippet: Uri mUri = Uri.parse("smsto:+9876543210"); Intent mIntent = new I ...
- USB ISP(ICSP) Open Programmer < PWM ADC HV PID >
http://sourceforge.net/projects/openprogrammer/?source=navbar Open Programmer http://openprog.alterv ...
- C#线程安全的那些事
还是上一次,面试的时候提到了C#线程安全的问题,当时回答的记不太清了,大概就是多线程同是调用某一个函数时可能会照成数据发生混乱,运行到最后发现产生的结果或数据并不是自己想要的,或是跨线程调用属性或方法 ...
- 追踪CPU跑满
http://blog.donghao.org/2014/04/24/%e8%bf%bd%e8%b8%aacpu%e8%b7%91%e6%bb%a1/
- [Asp.net MVC]HandleErrorAttribute异常过滤器
摘要 在asp.net mvc中除了使用try...catch/finally来处理异常外,它提供了一种通过在Controller或者Action上添加特性的方式来处理异常. HandleErrorA ...
- VS中运行HTTP 无法注册URL
参考资料 http://www.java123.net/detail/view-449670.html http://www.cnblogs.com/jiewei915/archive/2010/06 ...
- java编码问题总结
第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础 第二篇:JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换 第三篇:J ...
- 页面中checkbox返回的是一个数组,如何对数组进行操作
1. 仅仅利用javascript进行操作: //html代码如下: <form action="#" method="POST" onsubmit=&q ...