Kadang-kadang selama pemeliharaan indeks kami, pekerjaan itu akan gagal dengan kesalahan SEV 17 di mana cukup ruang tidak dapat dialokasikan untuk objek yang sedang dibangun kembali. Basis data ditata sedemikian rupa:
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
Pada dasarnya, 3 dari 4 file data penuh dan tidak diizinkan tumbuh, yang keempat penuh dan diizinkan untuk tumbuh. File-file tersebar di berbagai LUN (dan alasan mengapa berantakan). Jadi ketika indeks online dibangun kembali dimulai, ini adalah pemahaman saya bahwa jika ada ruang tambahan yang diperlukan, itu akan tumbuh menjadi Data_file4 dan baik-baik saja, tetapi tampaknya mencoba untuk tumbuh menjadi file yang berbeda di mana pertumbuhan tidak diperbolehkan dan gagal. Saya tidak dapat mereproduksi kesalahan ini, tetapi saya bertanya-tanya apakah ada yang tahu mengapa ini terjadi.
Versi SQL Server lengkap adalah 2008 R2 Enterprise, SP2 CU 4 (10.50.4270). Kami menggunakan skrip rekondisi Ola Hallengren, tempat kami membangun kembali secara online tetapi tidak ada penyortiran tempdb
.
max_size is
saat ini diatur ke UNLIMITED, bahkan pada yang 0 pertumbuhan. Saya sedang menyelidiki ini dalam tes repro saya sekarang.
If max_size is not specified, the file size will increase until the disk is full.
Diberikan, jika pertumbuhan otomatis tidak aktif, itu seharusnya tidak mencoba mengalokasikan dari file-file itu (A value of 0 indicates that automatic growth is set to off and no additional space is allowed.
), tetapi mungkin ada bug, jadi tidak ada salahnya untuk mencobanya jika tidak disetel.