本主題描述 SQL Server 備份的壓縮,包括限制、壓縮備份的效能取捨、備份壓縮的設定,以及壓縮比例。
備註
如需 SQL Server 2014 版本支援備份壓縮的資訊,請參閱 SQL Server 2014 版本支援的功能。 每一版的 SQL Server 2008 和更新版本都可以還原壓縮的備份。
優點
由於壓縮備份小於相同數據的未壓縮備份,所以壓縮備份通常需要較少的裝置 I/O,因此通常會大幅提高備份速度。
如需詳細資訊,請參閱本主題稍後 的壓縮備份效能影響。
限制
下列限制適用於壓縮備份:
壓縮和未壓縮的備份無法並存於媒體集中。
舊版 SQL Server 無法讀取壓縮備份。
NTbackups 無法與壓縮的 SQL Server 備份共用磁帶。
壓縮備份的效能影響
根據預設,壓縮會大幅增加CPU使用量,而壓縮程式所耗用的額外CPU可能會對並行作業造成負面影響。 因此,您可能會想要在 CPU 使用量受限於Resource Governor 的工作階段中建立低優先順序壓縮備份。 如需詳細資訊,請參閱使用 Resource Governor 限制備份壓縮的 CPU 使用量 (Transact-SQL)。
若要完整了解備份 I/O 效能,您可以藉由評估下列性能計數器,分開評估裝置的輸入或輸出備份 I/O:
Windows I/O 性能計數器,例如實體磁碟計數器
SQLServer:Backup Device 物件的 Device Throughput Bytes/sec 計數器
SQLServer:Databases 物件的 Backup/Restore Throughput/sec 計數器
如需 Windows 計數器的相關信息,請參閱 Windows 說明。 如需如何使用 SQL Server 計數器的詳細資訊,請參閱 使用 SQL Server 物件。
計算壓縮備份的壓縮比率
若要計算備份的壓縮比,請使用備份集歷史記錄表中的backup_size和compressed_backup_size列中的備份值,如下所示:
backup_size:compressed_backup_size
例如,3:1 壓縮比例表示您在磁碟空間上節省約66%。 若要查詢這些資料行,您可以使用下列 Transact-SQL 語法:
SELECT backup_size/compressed_backup_size FROM msdb..backupset;
壓縮備份的壓縮比例取決於已壓縮的數據。 各種因素可能會影響取得的壓縮比例。 主要因素包括:
數據類型。
字元數據會比其他類型的數據壓縮更多。
頁面上數據列之間的一致性。
一般而言,如果頁面包含數個數據列,其中的欄位包含相同的值,則該值可能會進行大幅壓縮。 相反地,對於包含隨機數據的資料庫,或每頁只包含一個大型數據列的資料庫,壓縮備份會幾乎和未壓縮的備份一樣大。
數據是否加密。
加密的數據壓縮明顯小於對等的未加密數據。 如果透明數據加密是用來加密整個資料庫,則壓縮備份可能完全不會減少其大小。
資料庫是否壓縮。
如果資料庫已壓縮,則壓縮備份可能根本不會減少其大小。
備份文件的空間配置
對於壓縮備份,最終備份檔的大小取決於數據的壓縮程度,而且備份作業完成之前,這是未知的。 因此,根據預設,使用壓縮備份資料庫時,Database Engine 會針對備份檔使用預先配置演算法。 此演算法會提前分配資料庫大小中預先定義的一定比例作為備份檔。 如果在備份作業期間需要更多空間,Database Engine 就會增加檔案。 如果最終大小小於配置的空間,在備份作業結束時,Database Engine 會將檔案壓縮為備份的實際最終大小。
若要只允許備份文件視需要成長以達到其最終大小,請使用追蹤旗標 3042。 追蹤標誌 3042 會導致備份作業跳過預設的壓縮預配置演算法。 如果您只要配置壓縮備份所需的實際大小,藉以節省空間,這個追蹤旗標就很有用。 不過,使用此追蹤旗標可能會造成輕微的效能降低(備份作業持續時間可能會增加)。