Sql-Server-2014

備份性能最佳實踐

  • July 18, 2018

我正在重新編寫我們的維護計劃,目前的重點是備份。在準備此計劃時,我想嘗試確保程序到位,以確保最佳備份性能。我知道實施以下內容,但是我想了解如何在該範圍之外進行改進。

目前考慮:

  • 備份壓縮
  • 大型數據庫的多個數據文件 - 可能超過 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 連結中也提到了這一點。

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