2011-06-11 144 views
1

我想使用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可能看起来像我成功地恢复这个数据库?

+0

这可能是文件损坏的情况。 – 2011-06-11 09:48:40

回答

1
  • 您可以脚本SSMS任务,只需点击“OK”之前
  • RESTORE的文档是在这里,但基本的想法是RESTORE DATABASE MyDB FROM DISK = 'F:\xxx.bak'

但是,此错误意味着文件是损坏的或不完整的。它可能会作为FTP或复制过程的一部分而被破坏。

一个随机想法:SQL Server帐户是否有权访问您的F:驱动器? (即使您可以在Windows资源管理器中看不到该错误,我也不记得该错误)

1

与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 
1

很肯定你的备份已损坏,但测试它,我建议您使用以下命令:

RESTORE VERIFYONLY 
FROM DISK = 'F:\xxx.bak' 

这样,如果备份文件存在问题,则可以捕获它们,而不会在此过程中损坏数据库。但是,请注意,VERIFYONLY不会捕获所有问题,并且如果未使用CHECKSUM运算符执行备份,则只会对备份文件进行标头检查。尽管如此,它总比没有好。

相关问题