Ocasionalmente, durante a manutenção do índice, a tarefa falha com um erro SEV 17, em que não é possível alocar espaço suficiente para o objeto que está sendo reconstruído. O banco de dados é organizado da seguinte maneira:
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
Essencialmente, 3 dos 4 arquivos de dados estão cheios e não podem crescer, o quarto está cheio e pode crescer. Os arquivos estão espalhados por diferentes LUNs (e o motivo é complicado). Portanto, quando a reconstrução do índice online for iniciada, entendo que, se for necessário espaço adicional, ele crescerá em Data_file4 e ficará bom, mas aparentemente ele está tentando crescer em um arquivo diferente, onde o crescimento não é permitido e está com falha. Não consigo reproduzir esse erro, mas estava me perguntando se alguém tinha informações sobre o porquê disso acontecer.
A versão completa do SQL Server é 2008 R2 Enterprise, SP2 CU 4 (10.50.4270). Usamos os scripts de reconstrução de Ola Hallengren, onde reconstruímos online, mas não fazemos nenhum tipo tempdb
.
max_size is
atualmente definido como ILIMITADO, mesmo naqueles com 0 crescimento. Estou investigando isso no meu teste de reprodução agora.
If max_size is not specified, the file size will increase until the disk is full.
Concedido, se o crescimento automático estiver desativado, isso não deveria estar tentando alocar a partir desses arquivos (A value of 0 indicates that automatic growth is set to off and no additional space is allowed.
), mas pode haver um erro, por isso não faria mal tentar se não estiver definido.