Описание поддержки SQL Server баз данных на сжатых томах

В этой статье описывается поведение хранилища файлов базы данных SQL Server на сжатых дисках.

Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 231347

Сводка

SQL Server базы данных не поддерживаются на сжатых томах NTFS или FAT, за исключением особых случаев для SQL Server 2005 и более поздних версий. Сжатый том не гарантирует операции записи, выровненные по секторам, и они необходимы для обеспечения восстановления транзакций при некоторых обстоятельствах.

Для SQL Server 2005 и более поздних версий хранилище файлов базы данных на сжатых дисках работает следующим образом:

  • Если файл данных принадлежит файловой группе только для чтения, файл разрешен.

  • Если файл данных принадлежит базе данных только для чтения, он разрешен.

  • Если файл журнала транзакций принадлежит базе данных только для чтения, этот файл разрешен.

  • При попытке создать базу данных для чтения и записи с файлами на сжатом диске SQL Server выдает следующую ошибку:

    Msg 5118, Level 16, State 2, Line 1. Файл "<file_name>" сжимается, но не находится в базе данных или файловой группе, доступной только для чтения. Файл должен быть распакованным.

Дополнительные сведения об исключениях для баз данных только для чтения и файловых групп только для чтения в SQL Server 2008 г. см. на следующем веб-сайте MSDN:

Файловые группы и сжатие только для чтения

Примечание.

Этот раздел также относится к SQL Server 2012 и более поздних версиях.

Дополнительная информация

Хотя физически можно добавлять SQL Server базы данных на сжатые тома, мы не рекомендуем это делать и не поддерживаем его. Ниже приведены основные причины этого.

  • Производительность

    Базы данных на сжатых томах могут привести к значительным издержкам на производительность. Сумма будет отличаться в зависимости от объема операций ввода-вывода и от соотношения операций чтения и операций записи. Однако при некоторых условиях наблюдается более чем 500-процентная деградация.

  • Восстановление базы данных

    Для надежного восстановления транзакций базы данных требуются операции записи, выровненные по секторам, а сжатые тома не поддерживают этот сценарий. Вторая проблема связана с внутренним управлением пространством восстановления. SQL Server внутренне резервирует предварительно размещенное место в файлах базы данных для откатов. На сжатых томах можно получить ошибку "Нет места " в предварительно размещенных файлах, что препятствует успешному восстановлению.

В некоторых сценариях резервное копирование SQL Server в сжатый том или сжатую папку не выполняется. При возникновении этой проблемы появляется одно из следующих сообщений об ошибке.

  • В Windows Vista и более поздних версиях Windows

    STATUS_FILE_SYSTEM_LIMITATION Не удалось выполнить запрошенную операцию из-за ограничения файловой системы
    Ошибка операционной системы 665(не удалось завершить запрошенную операцию из-за ограничения файловой системы)

  • В более ранних версиях Windows

    STATUS_INSUFFICIENT_RESOURCES системных ресурсов недостаточно для выполнения запрошенной ошибки операционной системы 1450 службы(Недостаточно системных ресурсов для выполнения запрошенного или 33(Процесс не может получить доступ к файлу, так как другой процесс заблокировал часть файла.)

Дополнительные сведения об этой проблеме см. в статье Фрагментированные файлы в томе NTFS не могут превышать определенный размер.

Примечание.

  • Исправление для Windows Vista и более поздних версий Windows, описанное в статье базы знаний 967351, может не устранить проблему SQL Server резервных копий, которые не были успешно выполнены в сжатый том или в сжатую папку. Однако это исправление поможет устранить проблему.
  • После применения исправления, описанного в статье базы знаний 967351, необходимо отформатировать диск, на котором включено сжатие, с помощью /L параметра . При форматировании диска, на котором включено сжатие, с помощью /L параметра число байтов на каждый сегмент записей файла увеличивается с 1024 байт до 4096 байт.

SQL Server резервные копии на сжатые тома могут сэкономить место на диске. Однако они могут увеличить загрузку ЦП во время операции резервного копирования. Мы всегда рекомендуем использовать средства контрольной суммы BACKUP для обеспечения целостности данных.

SQL Server требует, чтобы системы поддерживали гарантированную доставку на стабильный носитель, как описано в SQL Server требования к программе надежности операций ввода-вывода.

Дополнительные сведения о требованиях к входным и выходным данным для ядра СУБД SQL Server см. в разделе ядро СУБД Microsoft SQL Server требования к входным и выходным данным.