備份性能最佳實踐
我正在重新編寫我們的維護計劃,目前的重點是備份。在準備此計劃時,我想嘗試確保程序到位,以確保最佳備份性能。我知道實施以下內容,但是我想了解如何在該範圍之外進行改進。
目前考慮:
- 備份壓縮
- 大型數據庫的多個數據文件 - 可能超過 100GB?
- 將備份寫入另一個 I/O 子系統
- 定義參數值,包括 BLOCKSIZE、MAXTRANSFERSIZE 和 BUFFERCOUNT
- 清除舊文件
- 刪除備份歷史
除了上述之外,還有什麼可以實施的。此外,在設置 BLOCKSIZE、MAXTRANSFERSIZE 和 BUFFERCOUNT 的值時,我應該考慮/如何定義正確的值?我很欣賞這將是一些試驗和錯誤的測試,但了解最佳實踐會很有用。
為了了解我的日常工作,我將執行每小時事務日誌備份、每日差異和每週完整備份。
謝謝
開始計劃升級到 SQL Server 2017,因為 SQL Server 2017 中的備份操作變得更快。我們如何使用 SQL Server 2017 更快地進行備份
除了上述之外,還有什麼可以實施的。此外,在設置 BLOCKSIZE、MAXTRANSFERSIZE 和 BUFFERCOUNT 的值時,我應該考慮/如何定義正確的值?
對於 SQL Server 2014,我相信您已經了解了大部分內容,我會幫助您決定如何為
BLOCKSIZE, MAXTRANSFERSIZE & BUFFERCOUNT
. 此處跟踪標誌可用於將附加資訊轉儲到錯誤日誌中。例如dbcc traceon(3605, 3004, 3014, 3213, -1) go backup database [AdventureWorks2012] to disk='D:\Backup Parallelism\Adventureworks.Bak'
此命令將強制 SQL Server 將附加參數寫入有關內部備份操作的錯誤日誌。
Memory limit: 249MB BufferCount: 7 Sets Of Buffers: 1 MaxTransferSize: 1024 KB Min MaxTransferSize: 64 KB Total buffer space: 7 MB Tabular data device count: 1 Fulltext data device count: 0 Filestream device count: 0 TXF device count: 0 Filesystem i/o alignment: 512 Media Buffer count: 7 Media Buffer size: 1024KB
現在,如果您看到 SQL Server 內部選擇簡單備份
7 buffer buckets
和 和maxtransfer size of 1 MB
。您可以在 UAT 上執行類似的測試,並且可以使用以上 2 個值。請注意,選擇這些參數時會考慮各種可用資源,並且 SQL Server 會做出最佳決策以確保備份執行得更快。確保不要使值太大,否則最終會出現 OOM 錯誤。選擇最佳數量的備份文件也很重要。本部落格中的 Brent Ozar對單個到多個文件的備份速度進行了一些測試,這可能對您有所幫助。
最後,從 MSDN 部落格中閱讀了一些關於 SQl Server 備份和恢復操作的好資料。
PS:跟踪標誌未記錄,因此請僅在 UAT 環境中使用。我共享的 MSDN 連結中也提到了這一點。