在SQL Server 2008上还原数据库
问题描述:
我想使用Management Studio GUI还原数据库,并且出现以下错误。在SQL Server 2008上还原数据库
The media family on device 'F:\xxx.bak' is incorrectly formed. SQL Server cannot process this media family. RESTORE HEADERONLY is terminating abnormally. (Microsoft SQL Server, Error: 3241)
我敢肯定这BAK文件已被使用之前恢复数据库,但使用了RESTORE
命令。 Iv看着docs但我觉得他们有点简洁。
任何人都可以提出什么样的SQL可能看起来像我成功地恢复这个数据库?
答
- 您可以脚本SSMS任务,只需点击“OK”之前
- 上RESTORE的文档是在这里,但基本的想法是
RESTORE DATABASE MyDB FROM DISK = 'F:\xxx.bak'
但是,此错误意味着文件是损坏的或不完整的。它可能会作为FTP或复制过程的一部分而被破坏。
一个随机想法:SQL Server帐户是否有权访问您的F:驱动器? (即使您可以在Windows资源管理器中看不到该错误,我也不记得该错误)
答
与gbn一样,错误消息可能意味着SQL Server看到的BAK文件已损坏。它可能被网络损坏,或者存储BAK文件的磁盘或磁盘控制器可能已经损坏。
下面是一个例子restore命令:
restore database [DatabaseName]
from disk = N'c:\Restore\RestoreName.bak'
with file = 1,
move N'DatabaseName_Data' to N'd:\mssql\data\DatabaseName_Data.MDF',
move N'DatabaseName_Log' to N'd:\mssql\data\DatabaseName_Log.LDF',
replace
答
很肯定你的备份已损坏,但测试它,我建议您使用以下命令:
RESTORE VERIFYONLY
FROM DISK = 'F:\xxx.bak'
这样,如果备份文件存在问题,则可以捕获它们,而不会在此过程中损坏数据库。但是,请注意,VERIFYONLY不会捕获所有问题,并且如果未使用CHECKSUM运算符执行备份,则只会对备份文件进行标头检查。尽管如此,它总比没有好。
这可能是文件损坏的情况。 – 2011-06-11 09:48:40