【问题标题】:Restore DB — Error RESTORE HEADERONLY is terminating abnormally.恢复 DB — 错误 RESTORE HEADERONLY 异常终止。
【发布时间】:2011-03-03 12:49:46
【问题描述】:

我已经在服务器上备份了 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

它给了我以下错误:

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

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

  1. http://support.microsoft.com/kb/290787
  2. http://social.msdn.microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/4d5836f6-be65-47a1-ad5d-c81caaf1044f

但我仍然无法正确恢复数据库。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 别再问同样的问题stackoverflow.com/users/179123/jordon
  • in BACKUP DATABASE go4sharepoint_1384_8481 TO DISK=' C:\HostingSpaces\dbname_jun14_2010_new.bak' 使用 FORMAT 删除 C:\ 之前的多余空间。您本地环境中的 db 版本是什么?

标签: sql sql-server restore


【解决方案1】:

如果您尝试从 .BACPAC 文件恢复数据库,请确保在 SSMS 中选择“导入数据层应用程序”而不是恢复数据库。

【讨论】:

    【解决方案2】:

    当您尝试将备份数据从较高版本上传到较低版本时,会出现此类错误。就像您备份了 SQL Server 2008 并尝试将数据上传到 SQL Server 2005 一样,您将收到此类错误。请尝试以更高版本上传。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        【讨论】:

        • 宾果游戏,我有 4 个实例,混合了 2005 年和 2008 年,并且正在使用 2008 年的备份尝试恢复到 2005 年。Doh!现在很明显。
        • 您无法在 SQL 2008 中恢复从 SQL 2012 获取的备份。
        • SELECT @@VERSION 拯救了我的一天。我不知道我的 SQL Mgmt Studio 2008 已连接到 2005 实例!
        【解决方案5】:

        我遇到了这个问题,我的问题涉及更多... 最初我试图将 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。

        【讨论】:

          【解决方案6】:

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

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

          希望对某人有所帮助!

          【讨论】:

          • 我已将 bak 文件复制到其他磁盘。所以,我不得不将权限更改为 777。我不知道如何在 Windows 上执行此操作。所以,使用我的 cygwin shell 来做到这一点!
          【解决方案7】:

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

          【讨论】:

            【解决方案8】:
            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:之间没有空格

            【讨论】:

              【解决方案9】:

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

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

              【讨论】:

                【解决方案10】:

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

                【讨论】:

                • 不,我使用的是 SQL Server 2008
                猜你喜欢
                • 1970-01-01
                • 2022-07-06
                • 2015-10-21
                • 2015-12-14
                • 2015-11-29
                • 2022-12-19
                • 2013-07-24
                • 1970-01-01
                • 2016-10-07
                相关资源
                最近更新 更多