備份壓縮 (SQL Server)
本主題說明 SQL Server 備份的壓縮,包括限制、壓縮備份的效能取捨、備份壓縮的組態及壓縮率。
[!附註]
如需有關支援備份壓縮之 SQL Server 2012 版本的詳細資訊,請參閱<SQL Server 2012 版本支援的功能>。 每個 SQL Server 2008 版本與更新版本都可以還原壓縮的備份。
本主題內容:
優點
限制
壓縮備份的效能影響
計算壓縮備份的壓縮率
配置備份檔案的空間
相關工作
優點
由於壓縮的備份小於相同資料的未壓縮備份,所以壓縮備份通常需要更少的裝置 I/O 而且通常會大幅提升備份速度。
如需詳細資訊,請參閱本主題稍後介紹的<壓縮備份的效能影響>。
[頂端]
限制
下列限制適用於壓縮的備份:
壓縮和未壓縮的備份無法在媒體集中並存。
舊版 SQL Server 無法讀取壓縮的備份。
NTbackup 無法與壓縮的 SQL Server 備份共用磁帶。
[頂端]
壓縮備份的效能影響
根據預設,壓縮會大幅增加 CPU 使用量,而且壓縮程序所耗用的額外 CPU 可能會對並行作業造成不良的影響。 因此,您可能會想要在資源管理員限制 CPU 使用量的工作階段中建立低優先權的壓縮備份。 如需詳細資訊,請參閱<使用資源管理員進行備份壓縮,以限制 CPU 使用率 (Transact-SQL)>。
若要全盤了解備份 I/O 效能,您可以透過評估下列效能計數器種類,隔離往返裝置之間的備份 I/O:
Windows I/O 效能計數器,例如實體磁碟計數器
SQLServer:Backup Device 物件的 Device Throughput Bytes/sec 計數器
ms189883(v=sql.110).md 物件的 Backup/Restore Throughput/sec 計數器
如需有關 Windows 計數器的詳細資訊,請參閱 Windows 說明。 如需有關如何使用 SQL Server 計數器的詳細資訊,請參閱<使用 SQL Server 物件>。
[頂端]
計算壓縮備份的壓縮率
若要計算備份的壓縮率,請使用 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;
壓縮備份的壓縮比取決於已經壓縮的資料。 有許多因素可能會影響取得的壓縮比。 主要的因素包括:
資料的類型。
字元資料的壓縮比較其他資料類型要高。
頁面上資料列之間的資料一致性。
一般而言,如果某個頁面包含許多資料列,而且其中某個欄位包含相同的值,則系統可能會針對該值進行大幅壓縮。 反之,如果某個資料庫包含隨機資料或者每個頁面僅包含單一大型資料列,則壓縮的備份幾乎會與未壓縮的備份一樣大。
資料是否經過加密。
加密資料的壓縮比大幅低於對等的未加密資料。 如果使用透明資料加密來加密整個資料庫,則壓縮備份可能不會大幅縮減其大小 (如果有的話)。
資料庫是否經過壓縮。
如果資料庫已壓縮,壓縮備份可能不會大幅縮減其大小 (如果有的話)。
[回到頁首]
配置備份檔案的空間
對於壓縮備份,最後備份檔案的大小取決於資料可壓縮的程度,但是在備份作業完成之前,無法得知這項資訊。 因此,根據預設,使用壓縮備份資料庫時,Database Engine 會針對備份檔案使用預先配置的演算法。 此演算法預先為備份檔案配置了預先定義的資料庫大小百分比。 如果在備份作業期間需要更多空間,Database Engine 會增加檔案大小。 如果最後的大小小於配置的空間,在備份作業結束時,Database Engine 會將檔案縮小為最後的實際備份大小。
若要讓備份檔案只依照需要增加至最終大小,請使用追蹤旗標 3042。 追蹤旗標 3042 會導致備份作業略過預設備份壓縮預先配置演算法。 如果您只要配置壓縮備份所需的實際大小,藉以節省空間,這個追蹤旗標就很有用。 不過,使用此追蹤旗標可能會導致效能稍微降低 (可能會增加備份作業的持續時間)。