從 Azure Blob 儲存體還原到 SQL Server 2014 時,為何會收到「RESTORE DATABASE TERMINATED ABNORMALLY」(錯誤 3013)

從 Azure Blob 儲存體還原到 SQL Server 2014 時,為何會收到「RESTORE DATABASE TERMINATED ABNORMALLY」(錯誤 3013)

BACKUP TO URL我們的生產資料庫伺服器每晚使用SQL Server 2014 Standard 中的命令將其資料庫備份到 Azure Blob 儲存體。我現在嘗試將這些備份還原到我們在 Azure 中設定的新 SQL Server VM,該 VM 也執行 SQL Server 2014 Standard。我正在執行以下 SQL 命令:

RESTORE DATABASE Example FROM URL = 'https://exampleaccount.blob.core.windows.net/livedbbackups/ExampleBackup-2015-10-15T01-13-08.bak';
WITH CREDENTIAL = 'AzureBackupCredential', 
MOVE 'Example' TO 'C:\Databases\Example.mdf',
MOVE 'Example_log' TO 'C:\Databases\Example.ldf',
STATS = 5;

當我這樣做時,還原運行了 10 多分鐘,我可以在 SQL Server Management Studio 的「訊息」視窗中看到它的進展。但是,就在 100% 完成之前,會顯示以下錯誤訊息。

在 Windows NT 6.3(內部版本 9600:)(虛擬機器管理程式)上執行 Microsoft SQL Server 2014 - 12.0.4213.0 (X64) 標準版(64 位元)的 Azure VM 上的輸出:

85 percent processed.
90 percent processed.
95 percent processed.
Msg 3013, Level 16, State 1, Line 5
RESTORE DATABASE is terminating abnormally.

Google搜尋「SQL Server 錯誤 3013」或「SQL Server 復原資料庫異常終止」會產生許多頁面,表示我的資料庫檔案已損壞。不過,我不這麼認為,因為我可以跑完全相同的 SQL在執行 SQL Server 2014 Express 的筆記型電腦上,我得到以下輸出:

在 Windows NT 6.3(內部版本 10240:)(虛擬機器管理程式)上執行 Microsoft SQL Server 2014 - 12.0.2269.0 (X64) Express Edition(64 位元)的筆記型電腦上的輸出:

85 percent processed.
90 percent processed.
95 percent processed.
100 percent processed.
Processed 233600 pages for database 'Example', file 'Example' on file 1.
Processed 5 pages for database 'Example', file 'Example_log' on file 1.
RESTORE DATABASE successfully processed 233605 pages in 205.802 seconds (8.867 MB/sec).

這兩個復原語句都是針對完全相同的 URL 運行的,並且具有相同的未更改的備份檔案。如果它在我的 SQL Server Express 本地副本上正確恢復,它就不會損壞,對嗎?

以下是我試圖排除的其他一些可能的原因:

  • 版本不匹配- 備份在執行 Microsoft SQL Server 2014 - 12.0.2269.0 (X64) 標準版(64 位元)的伺服器上執行。還原在執行 Microsoft SQL Server 2014 - 12.0.4213.0 (X64) 標準版(64 位元)的伺服器上執行。這些版本號是透過SELECT @@VERSION在每台伺服器上運行來確定的。
  • 權限錯誤- 兩者都可以在不會復原資料庫的 Azure VM 上正常運作RESTORE HEADERONLYRESTORE FILELISTONLY
  • 可用空間- Azure VM 上的 C: 磁碟機有超過 80 GB 的可用空間。
  • 網路連線- 我還沒有進行任何廣泛的測試,但考慮到運行 SQL Server 的虛擬機器在 Azure 中運行,並且備份檔案也在 Azure 中,我認為它相當穩定。文件下載和瀏覽器的簡單測試似乎表明連接既穩定又快速。

所涉及的資料庫在復原後大約有 2 GB,其中有 5 GB 的日誌檔案。我在 Azure 中儲存了相同資料庫的其他備份,並且在嘗試還原其中任何一個時得到相同的結果(在本機 SQL Server Express 2014 上有效,在 Azure VM SQL Server Standard 2014 上失敗)。

有什麼想法可能導致此問題以及如何解決它嗎?

答案1

該線程有點舊,但我今天遇到了同樣的問題。我前段時間從 blob 儲存進行了恢復,一切正常,一周後,相同的恢復返回錯誤「恢復資料庫異常終止」。因此,我將備份檔案移至另一個容器,效果很好。

希望這個解決方法可以幫助其他人。

相關內容