在壓縮磁碟區上支援 SQL Server 資料庫的描述

本文說明 SQL Server 壓縮磁碟驅動器上的資料庫檔案儲存行為。

原始產品版本: SQL S
原始 KB 編號: 231347

摘要

除了在 2005 SQL Server 及更新版本的特殊情況下,NTFS 或 FAT 壓縮磁碟區不支援 SQL Server 資料庫。 壓縮的磁碟區不保證扇區對齊寫入,而且在某些情況下,這些是保證交易式復原的必要專案。

針對 SQL Server 2005 和更新版本,壓縮磁碟驅動器上的資料庫檔案記憶體行為如下:

  • 如果您的數據檔屬於唯讀檔案群組,則允許該檔案。

  • 如果您的數據檔屬於唯讀資料庫,則允許該檔案。

  • 如果您的事務歷史記錄檔屬於唯讀資料庫,則允許該檔案。

  • 如果您試著在壓縮的磁碟驅動器上顯示具有檔案的讀取/寫入資料庫,SQL Server 會產生下列錯誤:

    Msg 5118, Level 16, State 2, Line 1 檔案 “<file_name>” 已壓縮,但不在只讀資料庫或檔案群組中。 檔案必須解壓縮。

如需 2008 SQL Server 中只讀資料庫和唯讀檔案群組排除專案的詳細資訊,請移至下列 MSDN 網站:

唯讀檔案群組和壓縮

注意事項

本主題也適用於 SQL Server 2012 和更新版本。

其他相關資訊

雖然實際上可以在壓縮的磁碟區上新增 SQL Server 資料庫,但我們不建議這麼做,也不支援。 其基礎原因包括:

  • 效能

    壓縮磁碟區上的資料庫可能會造成顯著的效能額外負荷。 視 I/O 的磁碟區和讀取寫入的比例而定,數量會有所不同。 不過,在某些情況下觀察到超過500%的效能降低。

  • 資料庫復原

    資料庫的可靠交易式復原需要扇區對齊寫入,且壓縮的磁碟區不支援此案例。 第二個問題是內部復原空間管理。 SQL Server 在內部保留資料庫檔案中預先配置的空間以進行復原。 壓縮的磁碟區可能會在預先配置的檔案上收到 空間不足 錯誤,這會干擾復原成功。

在某些情況下,SQL Server 備份至壓縮的磁碟區或壓縮資料夾不會成功。 發生此問題時,您會收到下列其中一個錯誤訊息。

  • 在 Windows Vista 和更新版本的 Windows 中

    STATUS_FILE_SYSTEM_LIMITATION要求的作業因檔案系統限制而無法完成
    操作系統錯誤 665 (要求的作業因檔案系統限制而無法完成)

  • 在舊版 Windows 中

    STATUS_INSUFFICIENT_RESOURCES系統資源不足,無法完成要求的服務操作系統錯誤 1450 (系統資源不足,無法完成要求的或 33 (進程無法存取檔案,因為另一個進程已鎖定檔案的一部分。)

如需此問題的詳細資訊,請參閱 NTFS磁碟區中高度分散的檔案可能不會成長到超過特定大小

注意事項

  • KB 文章中討論的適用於 Windows Vista 和更新版本 Windows 的 Hotfix 967351可能無法解決 SQL Server 備份無法成功存取壓縮磁碟區或壓縮資料夾的問題。 不過,此 Hotfix 將有助於解決此問題。
  • 套用 KB 文章 967351中討論的 Hotfix 之後,您必須使用 參數來格式化啟用壓縮的 /L 磁碟驅動器。 當您使用 參數來格式化啟用 /L 壓縮的磁碟驅動器時,[每個檔案記錄的位元組區段] 會從1,024個字節增加到4,096個字節。

SQL Server 壓縮磁碟區的備份可以節省磁碟空間。 不過,它們可能會在備份作業期間增加 CPU 使用量。 我們一律建議您使用BACKUP總和檢查碼設備來協助保證數據完整性。

SQL Server 需要系統支援穩定媒體的保證傳遞,如 SQL Server I/O 可靠性計劃需求中所述。

如需 SQL Server 資料庫引擎輸入和輸出需求的詳細資訊,請參閱 Microsoft SQL Server 資料庫引擎 輸入/輸出需求