Ocasionalmente durante nuestro mantenimiento de índice, el trabajo fallará con un error SEV 17 donde no se puede asignar suficiente espacio para el objeto que está reconstruyendo. La base de datos se presenta como tal:
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
Esencialmente, 3 de los 4 archivos de datos están llenos y no pueden crecer, el cuarto está lleno y puede crecer. Los archivos están distribuidos en diferentes LUN (y la razón de por qué es desordenada). Entonces, cuando comienza la reconstrucción del índice en línea, entiendo que si se necesita espacio adicional, crecerá en Data_file4 y estará bien, pero aparentemente está tratando de crecer en un archivo diferente donde el crecimiento no está permitido y falla. No puedo reproducir este error, pero me preguntaba si alguien tenía idea de por qué sucede esto.
La versión completa de SQL Server es 2008 R2 Enterprise, SP2 CU 4 (10.50.4270). Usamos los scripts de reconstrucción de Ola Hallengren, donde reconstruimos en línea pero no los clasificamos tempdb
.
max_size is
actualmente establecido en ILIMITADO, incluso en los que tienen un crecimiento de 0. Estoy investigando esto en mi prueba de repro en este momento.
If max_size is not specified, the file size will increase until the disk is full.
Concedido, si el crecimiento automático está desactivado, eso no debería ser intentar asignar desde esos archivos (A value of 0 indicates that automatic growth is set to off and no additional space is allowed.
), pero puede haber un error, por lo que no estaría de más intentarlo si no está configurado.