从此 MS SQL bak 文件获取数据

从此 MS SQL bak 文件获取数据

以下命令

restore filelistonly from disk = 'C:\....bak'
restore verifyonly from disk = 'C:\....bak'

产生此错误

The media family on device 'C:\...bak' is incorrectly formed. SQL Server cannot process this media family.

此命令

restore headeronly from disk = 'C:\....bak'

生产

BackupName  BackupDescription   BackupType  ExpirationDate  Compressed  Position    DeviceType  UserName    ServerName  DatabaseName    DatabaseVersion DatabaseCreationDate    BackupSize  FirstLSN    LastLSN CheckpointLSN   DatabaseBackupLSN   BackupStartDate BackupFinishDate    SortOrder   CodePage    UnicodeLocaleId UnicodeComparisonStyle  CompatibilityLevel  SoftwareVendorId    SoftwareVersionMajor    SoftwareVersionMinor    SoftwareVersionBuild    MachineName Flags   BindingID   RecoveryForkID  Collation   FamilyGUID  HasBulkLoggedData   IsSnapshot  IsReadOnly  IsSingleUser    HasBackupChecksums  IsDamaged   BeginsLogChain  HasIncompleteMetaData   IsForceOffline  IsCopyOnly  FirstRecoveryForkID ForkPointLSN    RecoveryModel   DifferentialBaseLSN DifferentialBaseGUID    BackupTypeDescription   BackupSetGUID   CompressedBackupSize
*** INCOMPLETE ***  NULL    NULL    NULL    NULL    1   NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL

我确认该.bak文件确实来自 Microsoft SQL Server。它没有加密。它是否由 Microsoft SQL Server 2012 创建值得怀疑,因为旧系统已有好几年历史了。尝试使用临时安装到装有 SQL Server 2008 R2 的 Vista 计算机上进行导入。

目标是将数据放入不同的数据库(例如,使用 ODBC),或者放入我们可以为其创建导入程序的普通数据类型(、、.csv等)。.sql.xml

您是否建议使用除 TSQL 之外的其他方法来执行此导入?

您对这个错误信息还有其他解释吗?我不太想猜测我是否应该在较新或较旧的 SQL Server 版本上重试,因为每次重新安装都会花费大量时间,而时间是一种有限的资源。

答案1

如果这不是版本不匹配,那么备份文件可能实际上已损坏。

如果是这种情况,您将无法(至少无法轻易)从中恢复任何内容。

答案2

您确定备份仅由一个文件组成吗?

如果备份来源服务器上有可用空间(假设它仍在运行),您可以尝试将备份还原到新数据库以确认备份良好

答案3

该文件的标题已损坏,或者这是来自备份集的文件之一,而备份分布在多个文件中。

您需要获取数据库的新备份,或者需要从备份集中获取其他文件。

相关内容