Поделиться через


Описание поддержки баз данных 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 внутренне резервирует предварительное место в файлах базы данных для отката. В сжатых томах можно получить ошибку out of Space в предварительно размещенных файлах, и это мешает успешному восстановлению.

В некоторых сценариях резервное копирование 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 Требования к входным и выходным данным