SQL SERVER 2005 多数据库备份到一个设备文件中,如何恢复其中一个数据库?

wonsoft 2009-06-06 10:09:42
SQL SERVER 2005 多数据库备份到一个设备文件中,如何恢复其中一个数据库?
描述:
多个数据库备份到同一个设备文件中是没有任何问题!
问题:
还原其中一个数据库时,出现以下错误提示:


还原对于服务器“XXX”失败。(Microsoft.SqlServer.Smo)
其他信息:
System.Data.SqlClient.SqlError:逻辑文件“abc”不是数据库“newdb”的一部分。请使用RESTORE FILELISTONLY 来列出逻辑文件名。(Microsoft.SqlServer.Smo)
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
多个数据库备份到同一个设备文件中是没有任何问题!

很无语。难道没考虑过安全问题?
ChinaJiaBing 2009-06-06
  • 打赏
  • 举报
回复
导入/导出...
nzperfect 2009-06-06
  • 打赏
  • 举报
回复
这样做真是很危险的,文件坏了,所有的备份都没有了.


针对你的问题,应该这样恢复:
--假设备份文件:c:\xx.bak
RESTORE HEADERONLY FROM DISK='c:\xx.bak'
--Position表明备份文件位置

--假设你要恢复newdb,从上面的语句中找到位置为2
--用下面的语句找出其逻辑文件名
RESTORE FILELISTONLY FROM DISK='c:\xx.bak' WITH FILE=2

--还原newdb数据库

RESTORE DATABASE newdb
FROM DISK='c:\xx.bak'
WITH FILE=2,
MOVE 'newdb文件逻辑名' TO '位置及文件名称',
MOVE 'newdb文件逻辑名' TO '位置及文件名称',
RECOVERY


关键是你要到备份的文件的位置.
fcuandy 2009-06-06
  • 打赏
  • 举报
回复
参考3,4楼的建议
ai_li7758521 2009-06-06
  • 打赏
  • 举报
回复
在恢复的时候,逻辑文件名不可以修改,你指定的物理文件存放的位置必须存在,你可以使用
restore filelistonly from disk=XXX.bak 看看它原来的逻辑文件名,然后再恢复就没有问题了。
--小F-- 2009-06-06
  • 打赏
  • 举报
回复
应该是备份文件的路径问题 需要在还原的时候修改下
ai_li7758521 2009-06-06
  • 打赏
  • 举报
回复
还原时,选的备份文件不对。

22,210

社区成员

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

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