Backup

如何減少sql server備份時間

  • May 14, 2018

我有一個 200 GB 的 SQL Server 數據庫(包括一個文件流),每晚需要 20 多個小時進行備份。減少這個時間的最具成本效益的方法是什麼?我可以添加更多硬體。備份 IO、CPU 或記憶體是否受限?或者我是否需要隔離目前位於共享基礎架構上的數據庫?或者我可以進行一些編碼更改以將文件流數據刪除到 blob 中嗎?

參考後備份到多個文件以獲得更快和更小的 SQL Server 文件

問題

您是否曾希望您的備份執行得更快?那麼可能有一種方法,通過寫入多個文件。創建 SQL Server 備份非常簡單;您可以使用 SQL Server 管理工具,也可以使用 T-SQL 命令發出備份。但有時對於大型數據庫,它需要很長時間才能執行,並且很難通過網路複製這個非常大的文件,甚至複製到備份磁帶上。

解決方案

將數據庫備份寫入多個文件。除了將數據庫備份寫入一個文件之外,您還可以同時寫入多個文件,從而分散工作負載。這樣做的好處是備份過程可以使用多個執行緒執行,因此完成速度更快,並且文件更小,可以通過網路移動或複製到 CD 或 DVD。寫入多個文件的另一個優點是,如果您有多個磁碟陣列,您可以將備份文件寫入不同的陣列,從而獲得更好的 I/O 吞吐量。需要注意的一點是,為了保持 I/O 吞吐量,您應該將備份文件的寫入和數據庫文件的讀取保持在不同的磁碟陣列上。

使用 T-SQL 備份到多個文件

BACKUP DATABASE [Northwind] TO 
DISK = 'C:\Northwind_file1.bak', 
DISK = 'D:\Northwind_file2.bak', 
DISK = 'E:\Northwind_file3.bak', 
DISK = 'F:\Northwind_file4.bak' 
WITH INIT , NOUNLOAD , NAME = 'Northwind backup', NOSKIP , STATS = 10, NOFORMAT

一個 200gb 的數據庫並沒有那麼大,而且(在我看來)不應該花費將近 20 個小時。我還會在不處理 SQL Server 的情況下對您的備份目標延遲進行一些測試。

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