恢復 SQL Server 備份時出現錯誤 3203:數據無效
我正在嘗試恢復 .bak 文件(在 SQL Server 2008 R2 上進行備份,兼容級別 100)。我正在恢復 SQL Server 2012 版上的備份。我收到以下錯誤。不幸的是,備份數據庫的原始數據庫不再可用。我是這個項目的新手。我在拇指驅動器上獲得了 bak 文件。
關於如何將數據庫恢復到 2012 的任何建議?
數據庫“TstDB”的還原失敗。
System.Data.SqlClient.SqlError:在 ***13 上讀取(數據無效。)
這就是錯誤消息。當我執行時
RESTORE VERIFYONLY
,我收到以下錯誤:Msg 3203, Level 16, State 1, Line 2
Read on “C:****” failed: 13(The data is invalid.)
Msg 3013, Level 16, State 1, Line 2
驗證數據庫異常終止。
RESTORE HEADERONLY
那是成功的。當我使用 stats=1 執行恢復數據庫時,我得到以下資訊:10% 已處理。
20% 已處理。
$$ … $$
70% 已處理。
80% 已處理。
Msg 3203, Level 16, State 1, Line 2
Read on “C:\ccc.bak” failed: 13(The data is invalid.)
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE 異常終止。
嘗試執行
RESTORE FILELISTONLY
orRESTORE HEADERONLY
。如果這些成功執行,則證明 SQL Server 正在成功訪問 .bak 文件。(並排除某種許可問題。)如果成功,請嘗試執行您的
RESTORE VERIFYONLY
andRESTORE DATABASE
withSTATS=1
. 如果它每次都在同一位置繼續失敗,則可能表明您的備份已損壞,並且您不走運。如果每次都在不同的位置失敗,則可能是保存 .bak 位置的可靠性問題。
社區 Wiki 答案添加到最初作為評論留下的文件貢獻
根據發布的錯誤,文件似乎已損壞。請閱讀以下內容,看看是否有幫助:
修復損壞的 SQL 備份文件的經濟實惠的解決方案(TechNet Gallery 第三方工具)
來自健:
您可以將備份複製到另一個驅動器
C:\
,然後嘗試恢復它嗎?如果它失敗了,它肯定已經損壞了,你就不走運了。另請參閱SQL Server 故障排除:如何檢測并快速修復Microsoft TechNet 上的 SQL 數據庫損壞。