症状
假设已在安装了 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 的计算机上安装了以下更新之一:
-
SQL Server 2008 R2 Service Pack 1 (SP1) 或更高版本的累积更新 6
-
SQL Server 2008 R2 Service Pack 2 (SP2) 或更高版本的累积更新 1
在这种情况下,请运行 RESTORE FILELISTONLY 语句来还原 SQL Server 2008 R2 中的数据库。 但是,还原操作失败。 此外,你还会收到以下错误消息:
消息 3241,级别 16,状态 1,第 1行 设备上的媒体系列“<BackupFilePath>”格式不正确。 SQL Server无法处理此媒体系列。消息 3013,级别 16,状态 1,第 1行 RESTORE FILELIST 异常终止。
注意 如果在 SQL Server 2008 R2 的早期版本中运行 DBCC CHECKDB 语句,则会遇到指示备份介质中问题的无一致性错误。 因此,可以在这些早期版本中还原备份。
原因
出现此问题的原因是,数据库还原时,SQL Server 2008 R2 SP1 的累积更新 5 和 SQL 2008 R2 SP2 的累积更新 1 执行数据库完整性验证。 但是,RESTORE FILELISTONLY 语句不需要此验证。 此验证包含在 KB 2685132 中所述的修补程序中。 有关数据库完整性验证的详细信息,请单击以下文章编号2685132以查看Microsoft知识库中的文章2685132:
2685132 修复:在 SQL Server 2008 R2 实例或 SQL Server 2012 实例上运行日志传送备份作业时,日志传送还原作业会将损坏的事务日志备份还原到辅助数据库
解决方法
累积更新信息
2012 SQL Server累积更新 9
此问题的修补程序首次在累积更新 9 中发布。 有关如何为 SQL Server 2012 获取此累积更新包的详细信息,请单击以下编号以查看Microsoft知识库中的文章:
2867319 累积更新包 9 for SQL Server 2012Note 由于内部版本是累积的,因此每个新修补程序版本都包含上一个SQL Server 2012 修补程序版本中包含的所有修补程序和所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 SQL Server 2012 年发布后发布的SQL Server 2012 版本
SQL Server 2012 Service Pack 1 的累积更新 5
此问题的修补程序首次在累积更新 5 中发布。 有关如何获取 SQL Server 2012 Service Pack 1 的此累积更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:
2861107 SQL Server 2012 Service Pack 1 的累积更新包 5 注意 由于内部版本是累积的,因此每个新修补程序版本都包含以前的SQL Server 2012 Service Pack 1 修补程序版本中包含的所有修补程序和所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2772858 SQL Server 2012 Service Pack 1 发布后发布的SQL Server 2012 版本
SQL Server 2008 R2 SP1 的累积更新 13
此问题的修补程序首次在累积更新 13 中发布。 有关如何为 SQL Server 2008 R2 SP1 获取此累积更新包的详细信息,请单击下面的序列号以查看Microsoft知识库中的文章:
2855792 SQL Server 2008 R2 SP1 的累积更新包 13 注意 由于内部版本是累积的,因此每个新修补程序版本都包含上一个SQL Server 2008 R2 SP1 修补程序版本中包含的所有修补程序和所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 SQL Server 2008 R2 Service Pack 1 发布后发布的 SQL Server 2008 R2 版本
SQL Server 2008 R2 SP2 的累积更新 7
此问题的修补程序首次在累积更新 7 中发布。 有关如何为 SQL Server 2008 R2 SP2 获取此累积更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:
2844090 SQL Server 2008 R2 SP2 的累积更新包 7 注意 由于内部版本是累积的,因此每个新修补程序版本都包含以前的SQL Server 2008 R2 SP2 修补程序版本中包含的所有修补程序和所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2730301 SQL Server 2008 R2 Service Pack 2 发布后发布的SQL Server 2008 R2 版本
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方法
若要解决此问题,请同时运行 RESTORE FILELISTONLY 语句和 CONTINUE_AFTER_ERROR 选项。