Sql-Server

隨機日期差異備份的問題

  • April 1, 2022

我們的備份與差異備份有關,其中一個 VLDB 大約 10 TB,我們遇到了一個非常奇怪的問題。

我們每週一執行一次完整備份,並在剩余天數進行差異備份。我們在星期一進行完整備份,因為只有在該時間範圍內才有 6 小時的完整備份視窗。每 15 分鐘記錄一次備份。我們在主副本上進行備份,因為此設置是 AG 的一部分。

現在有些隨機的日子,我們看到差異備份會變得太慢的問題。平均而言,它在45 分鐘內完成,持續 6 天。但是在過去的幾個月裡,有些奇怪的日子會變得太慢,在**2-3 小時內****完成 10%**的進度。這可以是周二、週三、週四等任何一天。我們認為周五或週六的差異可能會很大並且變慢,但情況似乎並非如此。

從我檢查的內容來看,備份執行時沒有任何異常的執行沖突,一切都和往常一樣。

觀察到的等待是ASYNC_IO_COMPLETION,我們將在緩慢的 diff 備份日出現巨大的峰值,因為讀取和寫入延遲達到 60 毫秒,備份驅動器(專用)的邏輯磁碟隊列長度約為 3。此外,我們有多個備份 LUN,因為我們以拆分文件模式進行備份以加快備份速度。

我們看到的一個奇怪的修復是我們在發布當天執行了完整備份。然後第二天當 diff 執行時,它似乎又回到了良好的執行時間,沒有任何嚴重的緩慢。目前,當出現問題時,我們從未見過差異備份完成並且最終中止執行。

請建議我還能檢查什麼以找到根本原因。

編輯 - 根據評論中的要求添加其他詳細資訊

*同時執行了哪些其他程序(完整性檢查、索引維護等)?–>*他們都沒有執行正常的應用程序載入。從最近幾個掛起的狀態來看,沒有固定的模式

*您是使用多個備份文件還是備份到單個文件?*8個多個備份文件

*本地儲存還是 SAN 磁碟?*SAN

*雲還是本地?*現場

*您是否使用備份壓縮?*是啟用

*您是備份到獨立驅動器,還是與數據或日誌文件共享驅動器?*具有多個掛載點的獨立備份驅動器。這個專用的備份驅動器幾乎是 20 TB

*同時發生的任何可能凍結 IO 的 VM 級備份?*我沒有聽說過,但可以檢查

當我們的備份針對 40TB 驅動器時,我們已經看到了類似的備份速度減慢和磁碟延遲問題。您的備份所在的驅動器有多大?

我們不得不對驅動器大小設置 20TB 的限制,以避免在備份大型數據庫(5TB 或更多)時延遲嚴重下降。如果您有任何較小的驅動器可用於測試,則可以將後退速度與較大的驅動器進行比較,如果您有的話:)

否則,請開始查看 LUN 的潛在硬體問題。驅動器壞了,很難證明這一點,但值得檢查。

也檢查這個執行緒,提到了與你非常相似的問題。

您的完整備份、差異和日誌看起來有多大?您的驅動器設置為什麼塊大小?我建議至少 64K 以遵循最佳實踐,但根據數據大小,您甚至可能想要更高。預設值類似於 10k,對於 MSSQL 來說太小了

如果您發現您的文件太大,我真誠地建議您將備份拆分為跨多個驅動器的多個文件。通過將 4 個文件拆分到 4 個驅動器上,我們將大約 45 分鐘的備份作業減少到大約 7 分鐘。將 4 個文件寫入同一個驅動器應該會帶來一些好處,但您將被限制在驅動器上的 I/O 上,因此拆分它們將拆分 I/O 負載。

還原過程的唯一區別是您將每個文件添加到還原作業中,而不僅僅是一個。

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