因工作需要还原一个数据库备份文件时遇到了这个错误提示,搜索之后找到了这篇文章。遂尝试进行翻译。水平粗浅,还望见谅。
“设备上的媒体家族(簇)的结构不正确,SQLSERVER无法处理此媒体家族。”——这并不是一个能够帮助你精确定位问题的错误信息。
这个帖子将尽可能为你提供一点关于究竟是哪里出了错、针对这些错误可以采取哪些措施的建议。
你可能尝试还原你的数据库备份,而在此过程中你得到了一个陌生的错误:设备上的媒体家族(簇)的结构不正确。我们检索了互联网尽可能搜集人们遇到这个错误的情况,并将其中最常见的情况列出了一份清单。
最常见的引起这个错误的原因
- 创建的备份文件已损坏。一个避免出现此情况的好办法是创建备份时使用一致的验证选项(查看链接)。我们有如下几种方法可以确定备份文件是否损坏:
- 如果你想要将由较老版本的SQL Server创建的备份文件还原到安装了新版本的SQL Server的服务器上,你应该尝试将此备份还原到创建它的服务器上。如果在创建备份的服务器上仍旧还原失败,那么可以确定备份文件已经损坏。
- 现在,为了确定备份文件损坏的原因,你必须回答一个简单的问题:你的备份文件是否通过FTP发送至当前位置?
- 如果答案是肯定的,检查传输文件的模式是否为二进制模式而不是文本方式或者其他传输方式。如果文件传输模式是二进制之外的任何模式,重新传输备份文件并再次尝试进行还原。
- 如果在源服务器上还原数据库没有发生错误,那么一种可能性是,如果你正在将备份还原至较新版本的SQL Server,但你使用的是Express版本,如果备份文件过大,可能会出现这个错误。
(注:博主就是遇到了这种情况) 备份可能仍然指向创建它的旧实例。
- 一个SQL Server的实例只是一个SQL Server安装的名称。一般来说一台计算机上第一个安装是没有特定名称的默认实例,而你只需要以本地方式或通过服务器名来来连接到这个实例。
- 你可以通过运行一个简单的指查询语句来确认你的备份指向的实例:
SELECT @@VERSION
- 这个语句将返回备份指向的实例的SQL Server的版本。
- 如果你安装了Express版本的SQL Server,它的实例名称往往是SQLExpress,你可以通过以下三种方法中的任意一个连接到它:
- (local)\SQLExpress
- .\SQLExpress
- MyServerMachine\SQLExpress
SQL Server的各个实例之间是完全独立的,如果你想要,你可以安装任意数量的实例,只要确保实例的名称不会发生重复。
- 这种情况的解决方案是,改变你要还原的目标实例的名称。如果这个实例是全新安装的,重新安装实例并在实例配置时指定一个不同的、独特的名称。
作者:Radu Gheorghiu
原文:http://sqlbak.com/blog/media-family-on-device-is-incorrectly-formed/