Sql-Server

恢復 SQL Server 備份時出現錯誤 3203:數據無效

  • April 8, 2019

我正在嘗試恢復 .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 FILELISTONLYor RESTORE HEADERONLY。如果這些成功執行,則證明 SQL Server 正在成功訪問 .bak 文件。(並排除某種許可問題。)

如果成功,請嘗試執行您的RESTORE VERIFYONLYand RESTORE DATABASEwith STATS=1. 如果它每次都在同一位置繼續失敗,則可能表明您的備份已損壞,並且您不走運。

如果每次都在不同的位置失敗,則可能是保存 .bak 位置的可靠性問題。

社區 Wiki 答案添加到最初作為評論留下的文件貢獻

KASSQLDBA

根據發布的錯誤,文件似乎已損壞。請閱讀以下內容,看看是否有幫助:

修復損壞的 SQL 備份文件的經濟實惠的解決方案(TechNet Gallery 第三方工具)

來自

您可以將備份複製到另一個驅動器C:\,然後嘗試恢復它嗎?如果它失敗了,它肯定已經損壞了,你就不走運了。


另請參閱SQL Server 故障排除:如何檢測并快速修復Microsoft TechNet 上的 SQL 數據庫損壞。

引用自:https://dba.stackexchange.com/questions/98153