设备上的媒体系列格式不正确。SQL Server无法处理此媒体系列


31

我正在尝试在SQL Server中还原.BAK,但出现以下错误:

消息3241,级别16,状态7,行1设备'c:\ glyn \ JA.bak'上的媒体系列格式错误。SQL Server无法处理此媒体系列。消息3013,级别16,状态1,第1行RESTORE DATABASE正在异常终止。

我尝试使用2012年,2008年甚至2005年进行还原,但没有任何效果,我使用了以下查询,Tasks >> Back up但通过的结果却无效,这是我的SQL:

RESTORE DATABASE JA FROM DISK='c:\glyn\JA.bak'

有没有人有什么建议?我读过bak可能已损坏,它是由另一位从事该项目的DVD开发人员发送给我的。


Answers:


12

如果试图将较新的数据库还原到较旧的SQL版本,则始终可以简单地手动在较旧的SQL版本中创建数据库并利用任务-生成脚本并包含数据。

保存到文件 -> 高级 -> 要编写脚本的数据类型 -> 模式和数据

另外,请确保使用“服务器版本脚本”

如果您尝试从较新的SQL Server升级到较旧的版本,则这可能是唯一受支持的选项。

相关:将SQL Server 2012备份还原到SQL Server 2008数据库?


看起来像是骇客,但我想在我看来这可以解决此问题。
jpierson

7

我发现这表明您的备份文件已损坏。可能通过FTP以文本模式而不是二进制模式进行传输。

这个博客,其中列出如何别人定了同样的问题。


8
通常,在SE网站上“列出其他人如何解决同一问题”,您应该发布相关内容,例如博客文章;它可以防止链路衰变
jcollum

6

我遇到了同样的问题,我的脚本指定了错误的FILE类型,我指定了,.bak而我指定FILE = 2.trn

USE [master]
RESTORE DATABASE [MyNewDB] FROM
DISK = N'D:\MyOldDB.bak'
WITH
    FILE = 1, -- 1 = .bak, 2 = .trn type backup
    MOVE N'MyOldDB' TO N'd:\data\MyOldDB.mdf',
    MOVE N'MyOldDB_log' TO N'd:\data\MyOldDB_log.ldf',
    NOUNLOAD,
    STATS = 5    
GO

我不确定RESTORE命令是否为此自动检测或设置默认值...


1
该错误解决了这个问题,问题是当您使用GUI还原数据库时,SQL Managment Studio没有为您提供详细信息。如果您尝试使用t-sql脚本还原,则sql server将报告您使用MOVE选项。
dlopezgonzalez

5

在源和目标SQL Server上运行以下脚本,版本应匹配,或者目标应具有更高版本的SQL Server,否则无法还原.bak文件:

SELECT @@Version

1
关于版本的观点已经在其他答案中重复了。
Andriy M

1
@AndriyM,您是对的,但没有采取实际行动。我们不是在谈论历史或地理,应该提到一些命令或代码。
Shadi Namrouti


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.