Sql-Server

從此 MS SQL bak 文件中獲取數據

  • July 26, 2012

以下命令

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 版本上再試一次,因為每次重新安裝都需要大量時間,這是一種有限的資源。

如果這不是版本不匹配,則備份文件實際上可能已損壞。

如果是這種情況,您將無法(至少很容易)從中恢復任何東西。

您確定備份包含一個文件嗎?

如果您在備份來源的源伺服器上有可用空間(假設它仍然可以執行),您可以嘗試將備份還原到新數據庫以確認備份是好的

引用自:https://serverfault.com/questions/411250