備份壓縮 (SQL Server)
SQL Server 2008 Enterprise 中已導入備份壓縮。此主題討論備份壓縮的基本概念,包括壓縮備份的效能取捨。
[!附註]
雖然只有 SQL Server 2008 Enterprise 和更新版本才支援建立壓縮的備份,但是從 SQL Server 2008 開始,每個版本都可以還原壓縮的備份。
限制
下列限制適用於壓縮的備份:
壓縮和未壓縮的備份無法在媒體集中並存。
舊版 SQL Server 無法讀取壓縮的備份。
NTbackup 無法與壓縮的 SQL Server 備份共用磁帶。
壓縮備份的效能影響
由於壓縮的備份小於相同資料的未壓縮備份,所以壓縮備份通常需要更少的裝置 I/O 而且通常會大幅提升備份速度。
根據預設,壓縮會大幅增加 CPU 使用量,而且壓縮程序所耗用的額外 CPU 可能會對並行作業造成不良的影響。因此,您可能會想要在資源管理員限制 CPU 使用量的工作階段中建立低優先權的壓縮備份。如需詳細資訊,請參閱<如何:使用資源管理員來限制備份壓縮的 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 compression default 選項 伺服器層級的組態選項所定義。您可以在建立單一備份或排程一系列例行備份時,覆寫此伺服器層級的預設值。
變更伺服器層級的預設值
Transact-SQL
使用 sp_configure 預存程序來設定 backup compression default 的值,然後執行 RECONFIGURE 陳述式。
SQL Server Management Studio
使用 [伺服器屬性] 對話方塊的 [資料庫設定] 頁面。如需詳細資訊,請參閱<如何:檢視或變更 backup compression default 選項 (SQL Server Management Studio)>。
覆寫 backup compression default
您可以針對個別的備份、備份作業或記錄傳送設定來變更備份壓縮行為。
Transact-SQL
如果是給定的備份,可以在 BACKUP 陳述式中指定 WITH NO_COMPRESSION 或 WITH COMPRESSION。
如果是記錄傳送設定,您可以使用 sp_add_log_shipping_primary_databasesp_change_log_shipping_primary_database (Transact-SQL) 來控制記錄備份的備份壓縮行為。
SQL Server Management Studio
您可以在以下任何一個對話方塊中指定 [壓縮備份] 或 [不要壓縮備份] 來覆寫伺服器備份壓縮預設值。
-
在備份資料庫時,您可以控制個別資料庫、檔案或記錄備份的備份壓縮。
-
「維護計畫精靈」可讓您針對每個排程的完整或差異資料庫備份或記錄備份,控制備份壓縮。
SQL Server 2008 Integration Services (SSIS)備份資料庫工作
針對備份單一資料庫或多個資料庫建立封裝時,您可以控制備份壓縮行為。
-
您可以控制記錄備份的備份壓縮行為。
-
壓縮比
若要計算備份的壓縮比,請針對備份使用 backupset 記錄資料表之 backup_size 和 compressed_backup_size 資料行中的值,如下所示:
backup_size:compressed_backup_size
例如,壓縮比 3:1 表示您節省了大約 66% 的磁碟空間。若要針對這些資料行進行查詢,您可以使用下列 Transact-SQL 陳述式:
SELECT backup_size/compressed_backup_size FROM msdb..backupset;
壓縮備份的壓縮比取決於已經壓縮的資料。有許多因素可能會影響取得的壓縮比。主要的因素包括:
資料的類型。
字元資料的壓縮比較其他資料類型要高。
頁面上資料列之間的資料一致性。
一般而言,如果某個頁面包含許多資料列,而且其中某個欄位包含相同的值,則系統可能會針對該值進行大幅壓縮。反之,如果某個資料庫包含隨機資料或者每個頁面僅包含單一大型資料列,則壓縮的備份幾乎會與未壓縮的備份一樣大。
資料是否經過加密。
加密資料的壓縮比大幅低於對等的未加密資料。如果使用透明資料加密來加密整個資料庫,則壓縮備份可能不會大幅縮減其大小 (如果有的話)。
資料庫是否經過壓縮。
如果資料庫已壓縮,壓縮備份可能不會大幅縮減其大小 (如果有的話)。