SQL2005数据库备份还原

木岂木 2008-06-21 03:04:20
在别的机器上备份了一个数据库,在另外一台机器还原,总是提示
<b>
还原 对于 服务器“ZXL”失败。 (Microsoft.SqlServer.Smo)
System.Data.SqlClient.SqlError: 媒体集有 2 个媒体簇,但只提供了 1 个。必须提供所有成员。 (Microsoft.SqlServer.Smo)
</b>

我该怎么做?

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

备份文件难道就废了吗?
...全文
11260 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlt315 2012-07-24
  • 打赏
  • 举报
回复
受用了
zhanweino1 2011-12-12
  • 打赏
  • 举报
回复
不错不错不错不错不错不错不错
梁清锋 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 laimf 的回复:]
终于搞出来了。

原因分析:
1。备份的时候,旧路径没有删除,我添加了一个新路径,就无意中设置成了两个备份路径,SQL就会根据两个备份路径把备份文件分成两个。
2。还原的时候源数据必须把两个备份文件都加载上。
3。还原的新路径要手工修改成实际SQL的data文件夹路径。
4。如果有同名数据库,且需要覆盖的话,要修改设置。

感谢各位的帮助。
[/Quote]


其实你如果认真的看二楼提供的例子的话,你出现的问题就在他的例子里面,而且注释的也非常的详细。
badboybadboy 2010-09-05
  • 打赏
  • 举报
回复
换 ORACLE 算了。
zhaoyou_xt 2009-12-08
  • 打赏
  • 举报
回复
good!
木岂木 2008-06-23
  • 打赏
  • 举报
回复

终于搞出来了。

原因分析:
1。备份的时候,旧路径没有删除,我添加了一个新路径,就无意中设置成了两个备份路径,SQL就会根据两个备份路径把备份文件分成两个。
2。还原的时候源数据必须把两个备份文件都加载上。
3。还原的新路径要手工修改成实际SQL的data文件夹路径。
4。如果有同名数据库,且需要覆盖的话,要修改设置。

感谢各位的帮助。
utpcb 2008-06-23
  • 打赏
  • 举报
回复
你看看你的备份文件可是一个呢? 要不你直接用T-SQL 语句备份还原看怎样
木岂木 2008-06-23
  • 打赏
  • 举报
回复
跟“附加”数据库没关系,我使用的是“完全”“备份”和“恢复”。
懒牛科技 2008-06-21
  • 打赏
  • 举报
回复
楼主是否就一个mdf文件,没有ldf文件.如果是这样,请先创建ldf,再去还原
zero8500 2008-06-21
  • 打赏
  • 举报
回复
没用过。现在还在用老虎版
yuxianye1 2008-06-21
  • 打赏
  • 举报
回复
其他机子的备份到我机子也还原不了
错误信息结构不正确

以前2000时也是
不知为何
木岂木 2008-06-21
  • 打赏
  • 举报
回复
===================================

还原 对于 服务器“qim”失败。 (Microsoft.SqlServer.Smo)

------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=还原+Server&LinkId=20476

------------------------------
程序位置:

在 Microsoft.SqlServer.Management.Smo.Restore.SqlRestore(Server srv)
在 Microsoft.SqlServer.Management.SqlManagerUI.SqlRestoreDatabaseOptions.RunRestore()

===================================

System.Data.SqlClient.SqlError: 媒体集有 2 个媒体簇,但只提供了 1 个。必须提供所有成员。 (Microsoft.SqlServer.Smo)

------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&LinkId=20476

------------------------------
程序位置:

在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQueryWithMessage(StringCollection queries, ServerMessageEventHandler dbccMessageHandler, Boolean errorsAsMessages)
在 Microsoft.SqlServer.Management.Smo.BackupRestoreBase.ExecuteSql(Server server, StringCollection queries)
在 Microsoft.SqlServer.Management.Smo.Restore.SqlRestore(Server srv)

木岂木 2008-06-21
  • 打赏
  • 举报
回复
2楼可能没有遇到过这种情况。

我这个是完全备份,只有一个文件。

3楼是什么意思啊?没看懂。
liangCK 2008-06-21
  • 打赏
  • 举报
回复
给一个示例..


--创建测试数据库
CREATE DATABASE db
GO

--使用磁盘媒体集备份测试数据库,备份完成后删除测试数据库
BACKUP DATABASE db
TO DISK='c:\a.bak',DISK='c:\b.bak'
WITH FORMAT
DROP DATABASE db
GO

--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/秒)。
--*/
arrow_gx 2008-06-21
  • 打赏
  • 举报
回复
媒体集有 2 个媒体簇,但只提供了 1 个 ??

缺少的是什么呢 ?

如果缺少的是 ldf ,那在恢复的时候,直接把 ldf 的选项去掉,然后再恢复就可以了

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧