恢复数据库 - 错误RESTORE HEADERONLY异常终止。

时间:2010-06-14 13:43:53

标签: sql sql-server restore

我已经在服务器上备份了SQL Server 2008 DB,并将它们下载到本地环境。

我正在尝试恢复该数据库并继续向我发出以下错误。

  
     

执行时发生异常   Transact-SQL语句或批处理。   (Microsoft.SqlServer.ConnectionInfo)

     

------------------------------附加信息:

     

设备上的媒体系列   'C:\ go4sharepoint_1384_8481.bak'是   形成错误。 SQL Server不能   处理这个媒体家庭。恢复   HEADERONLY异常终止。   (Microsoft SQL Server,错误:3241)

     

如需帮助,请点击:   http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4053&EvtSrc=MSSQLServer&EvtID=3241&LinkId=20476

我曾尝试在服务器上创建一个临时数据库,并尝试恢复相同的备份文件,并且可以正常运行。我也试过没有。使用Filezila(自动,二进制)上的不同选项将文件从服务器下载到本地PC的时间

但它不起作用。之后我尝试在服务器上执行以下命令。

BACKUP DATABASE go4sharepoint_1384_8481 
TO DISK=' C:\HostingSpaces\dbname_jun14_2010_new.bak' with FORMAT

它给了我以下错误:

  

消息3201,级别16,状态1,行1无法打开备份设备   'c:\ Program Files \ Microsoft SQL   服务器\ MSSQL10.SQLEXPRESS \ MSSQL \备份\   C:\ HostingSpaces \ dbname_jun14_2010_new.bak”。操作系统错误   123(文件名,目录名或卷标语法是   不正确)。 Msg 3013,Level 16,State 1,Line 1 BACKUP DATABASE是   异常终止。

经过研究,我发现了以下两个有用的链接:

  1. http://support.microsoft.com/kb/290787
  2. http://social.msdn.microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/4d5836f6-be65-47a1-ad5d-c81caaf1044f
  3. 但我仍然无法正确恢复数据库。

    非常感谢任何帮助。感谢。

9 个答案:

答案 0 :(得分:25)

您可以查看此博文。它解决了我的问题。

http://dotnetguts.blogspot.com/2010/06/restore-failed-for-server-restore.html

  

选择@@版本
  它给了我以下输出Microsoft SQL Server   2005 - 9.00.4053.00(英特尔X86)2009年5月26日14:24:20版权所有(c)   1988-2005 Microsoft Corporation在Windows NT 6.0上的Express Edition   (Build 6002:Service Pack 2)

您需要重新安装到新的命名实例,以确保使用新的SQL Server版本。

答案 1 :(得分:7)

当您尝试将备份数据从较高版本上载到较低版本时,会出现此类错误。就像你有SQL Server 2008的备份,并且你试图将数据上传到SQL Server 2005然后你会遇到这种错误。请尝试上传更高版本。

答案 2 :(得分:2)

此错误可能是由您应该检查的文件权限引起的,但是最近我注意到如果文件已经传输并且Windows已将文件标记为“加密内容以保护数据”,则会引发相同的错误。

您可以通过调出.bak文件属性并单击高级按钮找到它,它将显示为对话框中的最后一个复选框。

希望能帮助别人!

答案 3 :(得分:2)

我遇到了这个问题,我的问题涉及到更多...... 最初我试图将SQL Server 2000备份还原到SQL Server 2012.当然这不起作用,因为SQL Server 2012仅支持2005年及以上的备份。

因此,我在SQL Server 2008计算机上恢复了数据库。完成此操作后 - 我将数据库复制到SQL Server 2012上进行还原 - 并且失败并显示以下错误

设备'C:\ XXXXXXXXXXX.bak'上的媒体系列格式不正确。 SQL Server无法处理此媒体系列。 RESTORE HEADERONLY异常终止。 (Microsoft SQL Server,错误:3241)

经过大量研究后我发现我跳过了一步 - 我不得不回到SQL Server 2008机器并右键单击数据库(我想要备份)>属性>选项>确保将兼容级别设置为SQL Server 2008.>保存

然后重新创建备份 - 在此之后我能够恢复到SQL Server 2012。

答案 4 :(得分:0)

我的猜测是你试图在较低版本中恢复无法正常工作

答案 5 :(得分:0)

我认为你有2个不同的问题,1。恢复和2.创建

对于1.您可以尝试检查文件是否已正确传输(一种简单的方法是检查服务器上文件的md5,然后再检查本地环境以查看它们是否匹配)。

答案 6 :(得分:0)

Cannot open backup device 'c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup\ C:\HostingSpaces\dbname_jun14_2010_new.bak'

错误很明显。文件C:\program files\...\Backup \c:\Hosting...\格式不正确。如果检查文件名,这很明显。也许省略备份语句中的额外空间?

BACKUP DATABASE go4sharepoint_1384_8481 
TO DISK='C:\HostingSpaces\dbname_jun14_2010_new.bak' with FORMAT

注意 'C:之间没有空格

答案 7 :(得分:0)

我有类似的问题,但我试图从较低版本恢复到更高版本(正确)。但问题是权利不足。当我使用“Windows身份验证”登录时,我能够恢复数据库。

答案 8 :(得分:0)

在我的情况下,备份文件已被压缩,但文件扩展名没有表明这一点,没有以.zip,.tgz等结尾。一旦我解压缩我的备份文件,我就可以导入它了。