備份壓縮 (SQL Server)

此主題討論備份壓縮的基本概念,包括壓縮備份的效能取捨。

SQL Server 2008 Enterprise 中已導入備份壓縮。從 SQL Server 2008 R2 開始,SQL Server 2008 R2 Standard 以及所有更高的版本都支援備份壓縮。每個 SQL Server 2008 版本與更新版本都可以還原壓縮的備份。

限制

下列限制適用於壓縮的備份:

  • 壓縮和未壓縮的備份無法在媒體集中並存。

  • 舊版 SQL Server 無法讀取壓縮的備份。

  • NTbackup 無法與壓縮的 SQL Server 備份共用磁帶。

壓縮備份的效能影響

由於壓縮的備份小於相同資料的未壓縮備份,所以壓縮備份通常需要更少的裝置 I/O 而且通常會大幅提升備份速度。

根據預設,壓縮會大幅增加 CPU 使用量,而且壓縮程序所耗用的額外 CPU 可能會對並行作業造成不良的影響。因此,您可能會想要在資源管理員限制 CPU 使用量的工作階段中建立低優先權的壓縮備份。如需詳細資訊,請參閱<如何:使用資源管理員來限制備份壓縮的 CPU 使用量 (Transact-SQL)>。

若要全盤了解備份 I/O 效能,您可以透過評估下列效能計數器種類,隔離往返裝置之間的備份 I/O:

如需有關 Windows 計數器的詳細資訊,請參閱 Windows 說明。如需有關如何使用 SQL Server 計數器的詳細資訊,請參閱<使用 SQL Server 物件>。

組態

進行安裝時,備份壓縮預設是關閉的。備份壓縮的預設行為是由 backup compression default 選項伺服器層級的組態選項所定義。您可以在建立單一備份或排程一系列例行備份時,覆寫此伺服器層級的預設值。

變更伺服器層級的預設值

覆寫 backup compression default

您可以針對個別的備份、備份作業或記錄傳送設定來變更備份壓縮行為。

壓縮比

若要計算備份的壓縮比,請針對備份使用 backupset 記錄資料表之 backup_sizecompressed_backup_size 資料行中的值,如下所示:

backup_size:compressed_backup_size

例如,壓縮比 3:1 表示您節省了大約 66% 的磁碟空間。若要針對這些資料行進行查詢,您可以使用下列 Transact-SQL 陳述式:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;

壓縮備份的壓縮比取決於已經壓縮的資料。有許多因素可能會影響取得的壓縮比。主要的因素包括:

  • 資料的類型。

    字元資料的壓縮比較其他資料類型要高。

  • 頁面上資料列之間的資料一致性。

    一般而言,如果某個頁面包含許多資料列,而且其中某個欄位包含相同的值,則系統可能會針對該值進行大幅壓縮。反之,如果某個資料庫包含隨機資料或者每個頁面僅包含單一大型資料列,則壓縮的備份幾乎會與未壓縮的備份一樣大。

  • 資料是否經過加密。

    加密資料的壓縮比大幅低於對等的未加密資料。如果使用透明資料加密來加密整個資料庫,則壓縮備份可能不會大幅縮減其大小 (如果有的話)。

  • 資料庫是否經過壓縮。

    如果資料庫已壓縮,壓縮備份可能不會大幅縮減其大小 (如果有的話)。