“無法對資料庫“myDb”執行差異備份,因為目前資料庫備份不存在。”

“無法對資料庫“myDb”執行差異備份,因為目前資料庫備份不存在。”

在嘗試進行差異備份時,我遇到了一個似乎很常見的問題。我們有 SQL Server 2008 Standard(64 位元),並使用 Litespeed v 5.0.2.0 進行備份。我們每週進行一次完整備份,每天進行一次差異備份。問題是,每次我嘗試進行差異備份時,我都會收到以下錯誤:

由於請求中止,VDI 開啟失敗
備份資料庫異常終止。

無法對資料庫“myDb”執行差異備份,因為目前資料庫備份不存在。透過重新發出 BACKUP DATABASE 來執行完整資料庫備份,忽略WITH DIFFERENTIAL 選項。

問題是我 100% 知道我有完整備份,因為我剛剛仔細檢查過。只有一次我能夠進行差異備份,那就是我在進行完整備份後立即進行備份。

我搜尋了一下,發現這種情況很常見(儘管主要是在 SQL 2005 中),很多人建議但我還沒有嘗試過的解決方案是停用 SQL Server VSS Writer 服務。問題是#1我想我可能需要這項服務,因為我使用的是第三方備份軟體,#2我不確定該服務到底是做什麼的,並且不想像那樣禁用它。

你們有人遇到過這個問題嗎?

謝謝你,

答案1

您是否在伺服器上執行 VSS 備份(NTbackup、BE 等)來處理 SQL 資料以外的其他內容?根據,如果備份軟體使用VSS進行快照,則SQL差異備份可能會失效。

據我所知,LS並沒有像Nick說的那樣使用VSS。根據這個線程修復方法是停用 SQL 編寫器服務。

根據評論更新:

由於您正在使用 NTbackup 備份伺服器上的其他文件,因此修復方法是停用 SQL 編寫器服務。

當 NTbackup 運行時它調用全部可用的 VSS 編寫器,即使您不需要它們。這表示在建立快照時,SQL 編寫器會將資料庫置於一致狀態(將快取刷新到磁碟)。然後,即使您沒有從卷影副本中複製訊息,資料庫也會認為它已備份。這就是破壞您備份的原因。

您可以檢查 VSS 是否正在針對資料庫運行(我確信它是並且打破了鏈條)的一件事是查看 SQL 日誌(我認為它在錯誤日誌中)。您應該在 NTbackup 作業運作期間看到凍結/解凍事件。

答案2

我使用光速已經有幾年了,所以這可能已經改變了,但是光速不提供自己的擴展預存程序來執行備份嗎?在這種情況下,您應該調用它們來進行微分。您可能不應該呼叫本機 BACKUP DATABASE 指令。我不認為你可以混合和匹配本機/光速備份。

我嘗試瀏覽 Quests 線上產品 doco,但可惜的是,您需要成為客戶。

從 SQL Server 的本機備份角度來看,如果您從未進行過完整備份,那麼您就無法進行差異備份。

VSS 服務允許透過卷影副本對 SQL Server 進行檔案級備份。如果您使用 lightspeed 進行備份並從伺服器層級 (OS) 備份中排除 sql server 目錄,則可以將其關閉。這可能與無法進行差異備份無關。

重新啟動 sql server 實例是否可以解決該問題?如果是這樣,您可能需要考慮增加 sql 伺服器 memtoleave看一下這個

答案3

發生此問題的最常見原因是,如果您有另一個備份軟體(NTBackup、BE、Bacula 等)對資料庫進行快照(VSS 副本 - 捲影副本),則這可能會導致備份鏈被破壞。您先前的差異備份無效,這就是為什麼當您目前的差異備份程序啟動時,它將失敗,因為它無法看到先前發生的初始完整備份或另一個差異備份。

首先,您需要找出哪個軟體工具正在建立資料庫的快照備份,因為有多種方法可以解決此問題。讓我們考慮一下在 NTBackup 的幫助下進行快照備份時最常見的情況。 NTBackup 的解決方案 首先,檢查“服務”選單中的“SQL Server VSS Writer”,它必須具有以下設定: 啟動類型:手動,並且必須停止該服務。如果 SQL Server VSS Writer 服務正在運作並且拍攝了快照,則完整復原模式將被阻止,備份鏈將會被破壞。若要變更 SQL Server VSS Writer 設定,請前往“星形選單”並在開啟的視窗中找到“服務”,然後選擇“SQL Server VSS Writer”。

右鍵單擊該服務,選擇“屬性”,在打開的視窗中將“啟動類型”設定為“手動”,在“服務狀態”部分按“停止”,以確保重新啟動後該服務不會自動運行。 ,然後按一下「確定」以套用所有變更。

答案4

儘管 Bacula 拍攝資料庫快照以及我自己的 SQL Server 備份,但我也遇到了同樣的問題。有某種錯誤導致伺服器上的資料庫子集發生這種情況,這是最煩人的。最後,我的解決方案是變更備份時間,以便在 Bacula 備份之後執行 SQL 備份,以確保 SQL Server 內部標誌正確重置,以表示已進行完整備份。那是在 2005 年,我想同樣的 VDI 議題也會影響 2008 年。

供參考這裡這是我之前的問題。

相關內容