
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 HEADERONLY
。RESTORE 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 儲存進行了恢復,一切正常,一周後,相同的恢復返回錯誤「恢復資料庫異常終止」。因此,我將備份檔案移至另一個容器,效果很好。
希望這個解決方法可以幫助其他人。