当前位置: 代码迷 >> Sql Server >> SQL2005数据库备份还原,该怎么解决
  详细解决方案

SQL2005数据库备份还原,该怎么解决

热度:26   发布时间:2016-04-27 16:03:14.0
SQL2005数据库备份还原
在别的机器上备份了一个数据库,在另外一台机器还原,总是提示  
  <b>  
  还原 对于 服务器“ZXL”失败。 (Microsoft.SqlServer.Smo)  
  System.Data.SqlClient.SqlError: 媒体集有 2 个媒体簇,但只提供了 1 个。必须提供所有成员。 (Microsoft.SqlServer.Smo)  
  </b>  
 
  我该怎么做?

很早之前的一个备份能用,可惜数据太旧了。近来一段时间的备份都用不起了。

备份文件难道就废了吗?

------解决方案--------------------
媒体集有 2 个媒体簇,但只提供了 1 个 ??

缺少的是什么呢 ?

如果缺少的是 ldf ,那在恢复的时候,直接把 ldf 的选项去掉,然后再恢复就可以了
------解决方案--------------------
SQL code
给一个示例..--创建测试数据库CREATE DATABASE dbGO--使用磁盘媒体集备份测试数据库,备份完成后删除测试数据库BACKUP DATABASE db     TO DISK='c:\a.bak',DISK='c:\b.bak'    WITH FORMATDROP DATABASE dbGO--1. 恢复时仅指定媒体集中的一个备份文件RESTORE DATABASE db     FROM DISK='c:\a.bak'/*--将收到错误信息服务器: 消息 3132,级别 16,状态 1,行 3数据库 'db' 的媒体集有 2 个家族成员,但只提供了 1 个。必须提供所有的成员。--*/--2. 再次备份时,仅指定备份媒体集中的一个备份文件BACKUP DATABASE pubs    TO DISK='c:\a.bak'/*--将收到错误信息服务器: 消息 3132,级别 16,状态 1,行 11数据库 'pubs' 的媒体集有 2 个家族成员,但只提供了 1 个。必须提供所有的成员。--*/--3. 备份时,指定超过媒体集的备份文件数BACKUP DATABASE pubs    TO DISK='c:\a.bak',DISK='c:\b.bak',DISK='c:\c.bak'/*--将收到错误信息服务器: 消息 3132,级别 16,状态 1,行 1数据库 'pubs' 的媒体集有 2 个家族成员,但只提供了 3 个。必须提供所有的成员。--*/--4. 重新初始化媒体集时指定所有的备份文件BACKUP DATABASE pubs    TO DISK='c:\a.bak'    WITH INIT/*--将收到错误信息服务器: 消息 3132,级别 16,状态 1,行 2数据库 'pubs' 的媒体集有 2 个家族成员,但只提供了 1 个。必须提供所有的成员。--*/--5. 指定完整的媒体集可以正常恢复数据库RESTORE DATABASE db     FROM DISK='c:\a.bak',DISK='c:\b.bak'/*--收到成功的信息已处理 96 页,这些页属于数据库 'db' 的文件 'db'(位于文件 1 上)。已处理 1 页,这些页属于数据库 'db' 的文件 'db_log'(位于文件 1 上)。RESTORE DATABASE 操作成功地处理了 97 页,花费了 0.125 秒(6.299 MB/秒)。--*/--6. 使用FORMAT重写媒体头可以重建媒体集BACKUP DATABASE pubs    TO DISK='c:\a.bak'    WITH FORMAT/*--收到成功信息已处理 208 页,这些页属于数据库 'pubs' 的文件 'pubs'(位于文件 1 上)。已处理 1 页,这些页属于数据库 'pubs' 的文件 'pubs_log'(位于文件 1 上)。BACKUP DATABASE 操作成功地处理了 209 页,花费了 0.230 秒(7.412 MB/秒)。--*/
------解决方案--------------------
你看看你的备份文件可是一个呢? 要不你直接用T-SQL 语句备份还原看怎样
  相关解决方案