Иногда во время обслуживания нашего индекса задание завершается с ошибкой SEV 17, когда не может быть выделено достаточно места для объекта, который он восстанавливает. База данных выложена так:
Data_file1 PRIMARY 0 growth 0% free Max Size UNLIMITED
Data_file2 PRIMARY 0 growth 0% free Max Size UNLIMITED
Data_file3 PRIMARY 0 growth Less than 1% free Max Size UNLIMITED
Data_file4 PRIMARY 250 MB growth Less than 1% free Max Size UNLIMITED
По сути, 3 из 4 файлов данных заполнены и не имеют возможности расти, четвертый заполнен и имеет возможность расти. Файлы распределены по разным LUN (и причина того, почему это грязно). Поэтому, когда начинается перестроение онлайн-индекса, я понимаю, что если потребуется какое-то дополнительное пространство, оно превратится в Data_file4 и будет в порядке, но, очевидно, оно пытается вырасти в другой файл, в котором рост не разрешен и терпит неудачу. Я не могу воспроизвести эту ошибку, но мне было интересно, если кто-нибудь понял, почему это происходит.
Полная версия SQL Server - 2008 R2 Enterprise, SP2 CU 4 (10.50.4270). Мы используем сценарии перестройки Олы Хелленгрен, где мы перестраиваем онлайн, но не сортируем tempdb
.
max_size is
в настоящее время установлен на UNLIMITED, даже на те, которые 0 роста. Я сейчас исследую это в моем репро тесте.
If max_size is not specified, the file size will increase until the disk is full.
Разрешено», если автоматическое увеличение отключено, его не следует пытаться выделить из этих файлов (A value of 0 indicates that automatic growth is set to off and no additional space is allowed.
), но может быть ошибка, поэтому было бы неплохо попробовать, если она не установлена.